+ -
当前位置:首页 → 问答吧 → 请老师帮我解释一下这些公式的含义

请老师帮我解释一下这些公式的含义

时间:2011-08-06

来源:互联网

请老师帮我解释一下这些公式的含义:这是我请老师编的,但我看不懂,我是新手,请老师多多指教,在下万分感谢!,请老师把公式中怎么查找后面的工作表解释详细一些!

附件也上传!
OFFSET(INDIRECT("'"&$B12&"'!A"&MATCH("灌区取水辅助台账表  "&$A12&"  月("&$B12&")",INDIRECT("'"&$B12&"'!A1:A300"),)),21,MATCH(RIGHT(C$10,LEN(C$10)-3),INDIRECT("'"&$B12&"'!A22:O22"),))

附件

取水量计算12.rar(18.99 KB)

2011-8-6 18:54, 下载次数: 22

作者: yanglingzs   发布时间: 2011-08-06

题外话:

建议楼主参考下帖附件中的文字说明,修改工作表的设置。我们的目的是使用Excel实现对数据的管理,而不是重新制作软件,因此要充分发挥Excel自带的强大功能,例如“高级筛选”、“数据透视表”等等,再用函数和代码等方法作为补充,以降低制作和修改难度,提高数据效率。

★Excel数据管理的一般规律★    http://club.excelhome.net/thread-287461-1-1.html

作者: LangQueS   发布时间: 2011-08-08

引用:
原帖由 yanglingzs 于 2011-8-6 18:54 发表
请老师帮我解释一下这些公式的含义:这是我请老师编的,但我看不懂,我是新手,请老师多多指教,在下万分感谢!,请老师把公式中怎么查找后面的工作表解释详细一些!

附件也上传!
OFFSET(INDIRECT("'"&$B12&"'! ...
应该说,公式总体结构还是比较简单,仅是一个offset函数的标准式:OFFSET()的第一参数reference参照系是INDIRECT("'"&$B12&"'!A"&MATCH("灌区取水辅助台账表  "&$A12&"  月("&$B12&")",INDIRECT("'"&$B12&"'!A1:A300"),)),而第二参数rows行偏移量为21,第三参数cols列偏移量为MATCH(RIGHT(C$10,LEN(C$10)-3),INDIRECT("'"&$B12&"'!A22:O22"),)。
感到复杂的是,第一参数和第三参数不像第二参数(21)那么简单,而是由indirect、match以及right和len复合组成,其中又有较长字符串在“搅局”:
先简介几个函数:
1、indirect——返回由文本字符串指定的引用。
语法
INDIRECT(ref_text,a1)
Ref_text     为对单元格的引用,文本字符串
a1     为一逻辑值,此处a1省略,ref_text 被解释为 A1-样式的引用。
如公式中INDIRECT("'"&$B12&"'!A1:A300")的Ref_text就是"'"&$B12&"'!A1:A300",也即"'测水位,推算流量和水量'!A1:A300"
2、match——返回在指定方式下与指定数值匹配的数组 中元素的相应位置。
语法
MATCH(lookup_value,lookup_array,match_type)
Lookup_value     为需要在数据表中查找的数值。
Lookup_array     可能包含所要查找的数值的连续单元格区域。
Match_type     为数字 -1、0 或 1。楼主公式中的两个match函数的match_type 都是0,(省写数字0,只留该参数前的逗号),就是查找等于 lookup_value 的第一个数值。
如公式中MATCH("灌区取水辅助台账表  "&$A12&"  月("&$B12&")",INDIRECT("'"&$B12&"'!A1:A300"),))——就是找出"灌区取水辅助台账表  "&$A12&"  月("&$B12&")"(即"灌区取水辅助台账表  1  月(测水位,推算流量和水量)")这样的字符串在INDIRECT("'"&$B12&"'!A1:A300")(即'测水位,推算流量和水量'!A1:A300)的位置,对C12单元格来说,MATCH("灌区取水辅助台账表  "&$A12&"  月("&$B12&")",INDIRECT("'"&$B12&"'!A1:A300"),)=1,因此OFFSET的第一参数INDIRECT("'"&$B12&"'!A"&MATCH("灌区取水辅助台账表  "&$A12&"  月("&$B12&")",INDIRECT("'"&$B12&"'!A1:A300"),))就是INDIRECT("'"&$B12&"'!A"&1),也即'测水位,推算流量和水量'!A1。
3、right()从右面取字符函数、len()统计字符串的字符个数函数,这里就不多说,公式offset的第三参数:MATCH(RIGHT(C$10,LEN(C$10)-3),INDIRECT("'"&$B12&"'!A22:O22"),)——返回从C$10右面取LEN(C$10)-3)个字符的字符串在INDIRECT("'"&$B12&"'!A22:O22")中的位置,即查"渠系引入区外水源"在'测水位,推算流量和水量'!A22:O22中的位置,结果是3。
因此,整个公式:=OFFSET(INDIRECT("'"&$B12&"'!A"&MATCH("灌区取水辅助台账表  "&$A12&"  月("&$B12&")",INDIRECT("'"&$B12&"'!A1:A300"),)),21,MATCH(RIGHT(C$10,LEN(C$10)-3),INDIRECT("'"&$B12&"'!A22:O22"),))就是=OFFSET('测水位,推算流量和水量'!A1,21,3)——得到你要的数据:716.256。

作者: wangjguo44   发布时间: 2011-08-08

悠游独钓客的循循诱导令人佩服!学习了

作者: jpowe   发布时间: 2011-08-09

相关阅读 更多