关于EXCEL中,INDIRECT和MATCH函数的使用IF($A5=,,INDIRECT('&B$2&'!C&MATCH(合计,INDIRECT('&B$2&'!A&MATCH($A5,INDIRECT('&B$2&'!A1:A541),0)&:A541),0)+MATCH($A5,INDIRECT('&B$2&'!A1:A541),0)-1))麻烦帮忙解释下上面这段公式的意思.谢谢~
网友回答
【答案】 INDIRECT函数是引用函数,何为引用?举个例子,有一EXCEL表,A列的第一行的值是B5,而B列第五行的值是ABC,那么INDIRECT($A$1)返回的值就是B列第五行的值.也就是类似其他编程语言中的设定变量一样.
INDIRECT函数还可以分解引用的数据,譬如,A列的第一行的值是5,你可以用INDIRECT(B&$A$1),同样返回B列第5行的值.(括号内的B&$A$1其实就是字符B加上A列第一行的值5,也就是B5)
MATCH 函数是查找你需要的数据,然后返回数据所在的位置(从你指定的行数开始,在第几行,不是绝对的行号,而是相对的,譬如说,你从第2行至第10行之间找,而匹配的数据在第3行,返回的不是3,而是2,明白吗?)
MATCH函数还有一个match_type参数,分为1,0,-1,
其中
1是指查找小于或等于你设定查找内容的最大数值.你查找的那一列必须按升序排列.
0是指查找等于你设定查找内容的值,你查找的那一列对排序没有要求.
-1是指查找大于或等于你设定查找内容的最大数值.你查找的那一列必须按降序序排列.
具体的例子你可以看一楼的回答,应该能看懂.
PS:关于绝对引用,你可以写成$A$1,也可以写成A$1或者$A1,“$”符号的作用就是绝对定位,写成列前面是列绝对定位,写成行号前面是行绝对定位,也就是说当单元格发生变化的时候,列号和行号不发生变化,反之,则相应更改.
PS:回楼主,你的理解是对的.