舉個工作實例,老板發給你一個工作簿,裏面包含了多個工作表,需要你從子表中匹配,在總表中彙總數據,如下所示:
B列的數據,需要在第1個表中匹配
C列的數據,需要在第2個表中匹配
依次類推
![](http://image.uc.cn/s/wemedia/s/upload/2024/4e74acb431e0da3131d6928830021457.png)
這裏有6個子表
最笨的辦法,我們每一列都使用一個公式
=VLOOKUP(A2,'1'!A:B,2,0)
用6次公式,也能解決問題
![](http://image.uc.cn/s/wemedia/s/upload/2024/247cd8abb52185788c8b9b7bcfa1cbf0.jpg)
但是如果子表太多,這個方法還是不可取
我們希望能夠一次性的全部匹配出來
我們發現一個規律:
當我們需要查找第2個表的時候,其實只需要將引用的1,變成2就可以了
有沒有什麽辦法,可以將數字1,變成數字2
首先,我們做一個嘗試,
=VLOOKUP(A2,'1'!A:B,2,0)
用B1單元格來替換數字1,使用的公式是:
=VLOOKUP($A2,"'"&B$1&"'!A:B",2,0)
![](http://image.uc.cn/s/wemedia/s/upload/2024/a338b1ab14675372e86a3abaf1b9a7be.png)
通過這種引用方式,計算不出來結果,因爲公式變成了:
=VLOOKUP(A2,"'1'!A:B",2,0)
中間的部分,要去掉雙引號,才能得到結果
這個時候,就可以借助Indirect間接引用公式來完成
它就可以完美的幫助我們去掉雙引號
所以我們輸入的公式是:
=VLOOKUP($A2,INDIRECT("'"&B$1&"'!A:B"),2,0)
![](http://image.uc.cn/s/wemedia/s/upload/2024/da2399199bf0be902ac3a027c2f1a81e.png)
其實INDIRECT公式很簡單,它就是一個去掉雙引號的過程,所以當你輸入的公式是:
=INDIRECT("A3")
它就等價于=A3
![](http://image.uc.cn/s/wemedia/s/upload/2024/15d87ecbccfa7cfe2e9a92f6552f0532.png)
關于這個小技巧,你學會了麽?動手試試吧!