本文的标题是《每天学一点Excel2010 (83)——Idirect》来源于:由作者:陈莉采编而成,主要讲述了187 indirect
助记:英文的“间接”。
类别:查找和引用
语法:
indire
187 indirect
助记:英文的“间接”。
类别:查找和引用
语法:
indirect(ref_text,[a1])
参数:1~2个参数
- ref_text 必需。对单元格的引用。可以是A1样式、R1C1样式、已定义的名称或者代表引用的文本字符串。如果识别不了,函数返回错误值#REF!,例如,引用是对另一个工作簿的外部引用,而该工作簿未打开。或者引用的单元格行数超过1048576、单元格列数超过16384(XFD)时。
- a1 可选。1个逻辑值。如果为true 或者省略,ref_text被解释为A1样式的引用;如果为false,ref_text被解释为R1C1样式的引用。就是说,使用R1C1样式时,必需要有这个参数。
用法:
返回由参数指定的引用。使用该函数的好处是可以做到“不忘初心”。
1)我们在A1单元格输入1,B1单元格输入2,C1单元格输入公式“=A1+B1”,结果为3。
2)现在我们右键单击B1单元格,选择“插入”、“活动单元格下移”后确定,C1中的公式变为“=A1+B2”。
3)现在我们再右键单击B2单元格,选择“剪切”、鼠标右击任意单元格选择粘贴,C1中的结果仍然不会变,公式自动随之改变。
4)所以我们要想让C1中公式的引用始终不变,就要把公式写成“=indirect("A1")+indirect("B1")”的样子,这样的公式无论**或剪切到任何地方,都可以始终保持对单元格的引用不变,坚守初心。
另外,ref_text参数可以是字符串,我们可以使用字符串的连字符&来根据需要构造我们的参数。
自动生成R1C1样式
1)比如我们将代表行、列的数值转换成R1C1样式的文本字符串可以这样做。
2)如图,在A1中输入“行列数”,A2~A11中输入行数1~10(用数字填充比较快),也可以使用我们学到的函数写成“=row()-1”向下填充。
3)同理,B1~J1填入列数1~9,公式是“=column()-1”,向右填充。
4)选择B2单元格,输入“="R"&$A2&"C"&B$1”,将此公式利用填充柄向下、向右填充,就可以得到如图所示的代表单元格引用的R1C1样式的字符串。
5)任意选择一个其他空白单元格,输入“=indirect(B2,false)”,会显示“行列数”,可以向下填充。
6)再任意选取一个单元格,输入“=indirect("B"&A3)”,省略第2个参数是A1样式,显示B2单元格的内容,可以向下填充。
7)利用这个功能就可以做个查询。
8)例如我们现在工作表Sheet3中输入一个花名册。
花名册示例
9)新建一个工作表,注意查询的项目顺序和Sheet3不同,在A3输入“=indirect("sheet3!"&"B"&$B$1+1)”回车后显示Sheet3工作表B列查询序号对应单元格的内容。
查询
认真思考一下,Excel帮助中说的“如果需要更改公式中对单元格的引用,而不更改公式本身,请使用函数INDIRECT”是什么意思?看看上面的内容我理解的对不对,所有的引用都用indirect函数的话,这个公式**、剪切到哪里都是不变的!例如“=Sheet3!D4”这样的公式,就会随着位置而改变。
欢迎批评指正!
(待续)
本文原作者为陈莉,转载请注明:出处!如该文有不妥之处,请联系站长删除,谢谢合作~
原创文章,作者:陈莉,如若转载,请注明出处:http://www.kaicen.cn/20220514322218.html