在實際工作中,我們經常需要做動態查詢的報表,如下圖所示切換日期就可以生成應的日報表:
你是不是在想,要多復雜的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集) 。詳情點選下方連結