1. 引用单元格里的值:
=A1
2. 了解indirect函数的意义以及语法:
直接拖动单元格是移动单元格内容,按住Ctrl拖动单元格是复制单元格内容
indirect专门负责帮我们把一个文本型的好像是引用的东西变成真正的引用,并且把对应的结果抓回来
引用单元格A1的内容的三种写法:
a. =indirect(A1)
b. =indirect("A"&"1")
C. =indirect("A"&row()*5-25)
3. indirect函数与index函数引用方式的对比:
index(某列,某索引) 如: index(E:E,E3)
indirect(A1)
如:
如:同样的例子,用index会这样做:
用indirect这样做:
4. 处理跨表:
有12个表,每个表是一个月,每个表里是几个人当月的金额,统计某人12个月的金额
思路:
只计算一个表: 1月!g2 即:"1月!"&"g2"
引用单元格: =indirect("1月!"&"g2") 同理计算其他12个月
若某个人不只在g2单元格,在别的表里还有单元格里存在:
=vlookup("张三","1月!"&A:G,7,0)
凡是用文本构建单元格地址的时候,都需要indirect()来确定地址,将这个像是地址的东西变成真正的地址
直接选择单元格来构建地址,就直接可以用作地址了
对于每个单元格每个人在同样单元格位置的情况:
对于每个人在每个表里不同位置上的情况:
对于单元格内有重复值的情况:
对于上例,求多个人每月的金额的总和:
5. 跨表引用时的单引号问题
indirect("'"&A2&"'!G2")
6. indirect名称引用:
a. 为区域定义名称:
选择区域--公式--定义名称--名称:张三--确定
对于这样确定的名称,对应的区域如果全是数字,则: =SUM(名称) 可对区域求和
若某个单元格写了这区域的名称,可通过 =SUM(indirect(A1)) 来对区域求和
b. 制作二级下拉列表:
利用数据 有效性 做 二级菜单:
将列头定义为列的名称--给一个空列设置数据有效性为序列并选中列头,再选一个空列定义数据有效性为序列,公式为
=indirect(上一列的第一个数据的位置)
如:对于图中左侧列出的数据,在右侧做数据有效性。若想做到写一个省份,比如F2,G2要显示出对应省份里的市。
这里就用到数据有效性。首先,给A4-A3设置名称“吉林省”,给B3-B15设置名称“江苏省”,给C3-C11设置名称“广东省”,然后,给F列设置数据有效性的序列,序列值为A3B3C3,给G列设置数据有效性,值为:=indirect(F1) 这样G列的单元格就与F列单元格里的值关联起来了,比如F2单元格是“江苏省”,G2单元格只有江苏省对应的市。