当前位置: 欣欣网 > 办公

动态切换的excel报表,竟然只需一个超简单的indirect公式

2024-06-29办公

在实际工作中,我们经常需要做动态查询的报表,如下图所示切换日期就可以生成应的日报表:

你是不是在想,要多复杂的excel公式才能实现这么「高级」切换功能。等兰色亮出公式估计很多人惊到大牙:原来公式这么简单:

=INDIRECT($C$2&"!RC",0)&""

嘿嘿,公式就这么短。只是.....能看懂这个公式的估计不到十分之一。 C2 是引用工作表名称, RC 又是什么鬼? &"" 又是什么作用?

想看懂这个公式,要先明白indirect函数的两种引用模式:

1、A1模式 列标 + 行号 的引用模式

=indirect("b1") 可以把单元格b1的值提取出来

2、R1C1模式 R行数C列数 的引用模式,第2个参数为false或0

=indirect("R1C2",0) 也是提取B1的值

但如果R和C后都没有数字: RC ,则表示当前行当前列。相当于row()和cloumn()

=indirect("RC",0) 表示引用公式所在单元格的值,即自身的值,会形成循环引用。如果引用另一个表则不会形成循环引用。如在A表中引用B表相同行列单元格的值:

=indirect("B!RC",0)

本例中,查询表和1日、2日...的日报表格式完全相同,都是从第4行第1列开始查询的。所以 =INDIRECT($C$2&"!RC",0) 就可以查询对应日报表相同位置的值。

&"" 有什么用?

公式引用的如果是空格会返回很多无意义的0,用&""则可以去掉它们。

兰色说 :一个简单的公式竟然藏着这么多用法,这也是Excel函数的魅力所在

想跟兰色学习函数、图表的同学可以购买四合一大全套课程( 包括 Excel表格92个函数用法 119个使用技巧 透视表从入门到精通50集 图表从入门到精通185集) 。详情点击下方链接