7.5.1、ADDRESS函数
概念:
根据指定行号和列号获得工作表中的某个单元格的地址
语法及参数:
ADDRESS(row_num, column_num, [abs_num],
[a1], [sheet_text])
示例1:
如下图7-15所示,A1到A4单元格公式只是第3参数不一样,公式的意思都是表示引用第3行第4列交叉位置的D3单元格。第三参数1、2、3、4参考上面语法参数中的abs_num对应解释。
图7-15
示例2:
如下图7-16所示,A1到A4单元格公式中的第4参数为1,代表A1引用样式,第5参数代表工作表名称,表示引用【Sheet3】这个工作表中的D3单元格,引用类型同样参考语法参数中的abs_num对应解释。
图7-16
7.5.2、INDIRECT函数
概念:
返回由文本字符串指定的引用。
语法及参数:
INDIRECT(ref_text,[a1])
示例1:
如下图7-17所示,在原来图7-15的例子A1到A4单元格的公式外套了一个INDIRECT函数,最后就引用到了D3单元格的值。虽然4个公式结果都是20,但是如果公式要上下左右拖动的话最后的结果就会完全不一样。必须完全理解单元格的引用类型。
图7-17
示例2:
如下图7-18所示,在上面图7-16的例子中外面套一个INDIRECT函数,最后引用的就不是当前表的D3单元格位置了,而是指定的工作表名称为【Sheet3】的D3,结果为200。
图7-18
示例3:
如下图7-19所示,A13单元格公式=INDIRECT('R10C'&COUNTA(10:10),FALSE),此公式可以动态提取最后一个月的值,可以删除列、增加列。都可以动态提取到数。
图7-19
示例4
如下图,需要根据一级期间费用下拉选择对应的二级科目
操作步骤及动态效果
一级科目利用数据验证(低版本office叫数据有效性),选择序列,输入一级科目或者选择数据区域即可;
二级科目先定义名称,根据所选内容创建,勾选首行即可,然后在选择数据,数据验证,选择序列输入公式=INDIRECT(A2)确定即可。
示例5
跨工作表取数,小白的方法,一个一个加,有多少我加多少,我有的是时间、、、、
函数公式方法
公式=INDIRECT(ADDRESS(10,14,1,1,A2)),因为合计金额都在第10行第14列,用ADDRESS函数就可以引用到单元格的地址,在用INDIRECT返回对单元格的引用得出结果。
示例6
跨表不规则动态取数
如下图,分表里的产品名称位置顺序不一样,年份、产品、月份都不固定,可通过下拉选择,如何实现动态提取某个年份、某个产品、某一月份的销量?
D2单元格公式=INDIRECT(ADDRESS(MATCH(B2,INDIRECT(ADDRESS(2,1,1,1,A2)&':'&'A9'),0)+1,MATCH(C2,INDIRECT(ADDRESS(1,2,1,1,A2)&':'&'N1'),0)+1,1,1,A2))
动态效果
联系客服