3个最不想碰的函数:FREQUENCY, INDIRECT, MMULT
FREQUENCY和MMULT结合数组应用比较烧脑,且抽象。
INDIRECT第一参数的表达方式简直复杂到令人发指。但在跨表引用数据的场合又离不开它。
INDIRECT的主要功能是引用数据,有两个参数。
第一个参数是必需的,用于指定要引用单元格的路径。
第二个参数是可选的,用于匹配EXCEL表格的两种行列形式,大多数情况下可以省略。
INDIRECT最大的难点是第一参数的格式,整理为2种模板。
方式一:直接输入路径
即把要引用单元格的路径直接输入到INDIRECT第一参数,其格式为:
=INDIRECT("[工作簿.xlsx]工作表!单元格")
要点总结:
- 整个路径置于双引号内;
- 工作簿名称置于方括号内;
- 工作表和单元格之间用感叹号隔开;
- 工作簿名称必须加后缀;
INDIRECT 直接输入路径格式模板
如图所示案例,在工作簿“INDIRECT”中引用数据:
=INDIRECT("[演示用.xlsx]笔记本!A1")
工作簿:演示用.xlsx
工作表:笔记本
单元格:A1
如省略工作簿名称,则默认引用当前工作簿中的数据
=INDIRECT("笔记本!A1")
工作簿:INDIRECT.xlsx(已省略)
工作表:笔记本
单元格:A1
如省略工作簿和工作表,则默认引用当前工作簿当前工作表中的数据:
=INDIRECT("A1")
工作簿:INDIRECT.xlsx(已省略)
工作表:Sheet2 (已省略)
单元格:A1
INDIRECT中直接输入路径
方式二:引用路径
把要引用的工作簿名称,工作表名称,单元格范围输入到单元格中,INDIRECT第一参数中引用,格式模板如下:
=INDIRECT("["&工作簿引用&"]"&工作表引用&"!"&单元格引用)
要点总结:
- 工作簿名称置于方括号内,方括号分别用双引号包裹;
- 工作表和单元格各之间用感叹号间隔,感叹号用双引号包裹;
- 各部分之间用连接符号(&)连接。
INDIRECT引用单元格中的路径
例下图所示:
=INDIRECT("["&A2&"]"&B2&"!"&C2)
引用路径为:演示用.xlsx/笔记本/A1:A3
如省略工作簿则默认在本工作簿中引用;
如省略工作簿和工作表则默认在本工作表中引用;
INDIRECT引用单元格路径
混合格式
实际情况会更复杂,很多时候直接输入和单元格引用两种方式需要同时存在。
例如在一个工作簿中有3个工作表:1月,2月,3月
3个工作表
汇总表中引用整合:
=IFERROR(VLOOKUP($A2,INDIRECT(B$1&"!"&"A:B"),2,0),"")
INDIRECT的作用是返回3个表格中的数据区域A:B.
工作簿:省略,默认在本工作簿中引用;
工作表:引用B1:B3中的文字对应3个工作表,
这里是引用路径的方式,各部分之间用连接符号(&)连接,感叹号也用双引号包裹,这些都符合引用路径中总结的特点。
单元格:A:B是直接输入的方式,要用双引号包裹。
INDIRECT案例
很难把所有可能的情况都总结成模板,但只要掌握了两种基本格式,实际应用中加以分析就能灵活运用了。