(根据王佩丰Excel学习视频整理)
一、认识Indirect单元格引用
1.了解Indirect函数的意义及语法
可以理解为间接引用。
例:=INDIRECT(B1)
如果在B1单元格中有一个值为a2,那indirect函数就会把A2单元格的值取过来
2.Indirect函数与Index函数引用方式的对比
例:
Index:=INDEX(E:E,ROW()*5-25)
意为在E列里,去某些行的数值,行数求法参加笔记17
Indirect:=INDIRECT("e"&ROW()*5-25)
意为引用E列指定行数据
3.处理跨表
例1:
这是第一个sheet中需要求得的结果,需跨表引用其他sheet(名称分别为1月、2月、3月...)中某一个单元格的数据进行汇总
手动引用时通过='1月'!G2即可引用到数据
=INDIRECT(A2&"!G2")
例2:
如果引用其他sheet的单元格不在固定的行,则需使用vlookup嵌套indirect函数
=VLOOKUP("张三",INDIRECT(A2&"!A:H"),7,0)
4.跨表引用时的单引号问题
如果出现错误(表格引用名称),将公式改为=VLOOKUP("张三",INDIRECT("'"&A4&"'!A:H"),7,0)即可
二、Indirect名称引用
1.为区域定义名称
例:
完成效果为可在姓名栏下拉选择任一名字,数据随名字更改
先为每一列数据定义名称,选择公式选项卡中的定义名称,将名称写为张三,引用位置框选张三那列的数据区域即可,以同样操作完成对李四、王五、赵六的名称定义
再定义姓名那列的数据有效性,在2016版本中为数据验证,设置验证条件为允许序列,数据来源选中名字那四个单元格即可,此时可实现下拉菜单制作
在数据那个空格填写公式:=SUM(INDIRECT(G3)) (G3为图中王五所在单元格名称),此时可以通过选择名字对任意人员的数据进行求和
2.制作二级下拉列表
先按照1分别定义吉林省、江苏省和广东省的名称
然后制作省份那列的数据验证,选择序列,数据源为吉林省到广东省那三个单元格
最后制作城市列的数据验证,选择序列,数据源为=INDIRECT(F2) F2为隔壁省份列的选择值