02.22 如何實現有下拉菜單的跨表數據彙總並查詢

問題情境

彙總查詢表”部門費用“如下,其中A2單元格是下拉菜單,內容是12個月份。

Excel | 如何實現有下拉菜單的跨表數據彙總並查詢

查詢表”部門費用“中12個月份的數據來源於同一工作薄中不同的12個以月份命名的工作表:

Excel | 如何實現有下拉菜單的跨表數據彙總並查詢

彙總並查詢效果如下:

Excel | 如何實現有下拉菜單的跨表數據彙總並查詢

公式實現

在B3單元格輸入公式:“=INDIRECT($A$2&"!"&ADDRESS(ROW(2:2),COLUMN(B:B),4))“,按Enter鍵結束計算,並將公式向右向下填充,可得結果。

如下圖:

Excel | 如何實現有下拉菜單的跨表數據彙總並查詢

公式解析

公式為“=INDIRECT($A$2&"!"&ADDRESS(ROW(2:2),COLUMN(B:B),4))“,其中:

ROW(2:2):該部分公式返回值為2,即所取數據來源於第2行,當公式向下填充時,本部分返回值隨公式填充而改變,每向下填充一行,返回值加1,公式向右填充,返回值不變;

COLUMN(B:B):該部分公式返回值為2,即所取數據來源於第2列,當公式向右填充時,本部分返回值隨公式填充而改變,每向右填充一列,返回值加1,公式向下填充,返回值不變;

ADDRESS(ROW(2:2),COLUMN(B:B),4):該部分公式返回值為B2,即所取數據來源於B2單元格,公式每下向填充一行,行數加1,每向右填充一列,列數加1;

$A$2&"!"&ADDRESS(ROW(2:2),COLUMN(B:B),4):該部分公式返回值為A2單元格指向的工作表,即1月的B2單元格。由於月份均在A2單元格,所以此單元格絕對引用,不隨公式的填充而改變;

INDIRECT($A$2&"!"&ADDRESS(ROW(2:2),COLUMN(B:B),4)):該部分公式返回A2向的工作表的B2單元格數據。

函數解析

附函數ADDRESS的用法:

【功能】

ADDRESS 函數,根據指定行號和列號獲得工作表中的某個單元格的地址。例如,ADDRESS(2,3) 返回 $C$2。再例如,ADDRESS(77,300) 返回 $KN$77。可以使用其他函數(如 ROW 和 COLUMN 函數)為ADDRESS 函數提供行號和列號參數。

【語法】

ADDRESS(row_num, column_num, [abs_num],[a1], [sheet_text])

【中文語法】

ADDRESS(行號, 列號, [引用類型],[引用樣式], [引用工作表])

【參數】

  • row_num 必需。一個數值,指定要在單元格引用中使用的行號。
  • column_num 必需。一個數值,指定要在單元格引用中使用的列號。
  • abs_num 可選。一個數值,指定要返回的引用類型。不同數字對應的引用類型如下表
Excel | 如何實現有下拉菜單的跨表數據彙總並查詢

  • a1 可選。 一個邏輯值,指定 A1 或 R1C1 引用樣式。在 A1 樣式中,列和行將分別按字母和數字順序添加標籤。 在 R1C1 引用樣式中,列和行均按數字順序添加標籤。如果參數 A1 為 TRUE 或被省略,則 ADDRESS 函數返回 A1 樣式引用;如果為 FALSE,則 ADDRESS 函數返回 R1C1 樣式引用。
  • sheet_text 可選。一個文本值, 指定要用作外部引用的工作表的名稱。例如, 公式=ADDRESS (1, 1,,,"Sheet2")返回Sheet2! $A $1。如果省略了sheet_text參數, 則不使用工作表名稱, 並且該函數返回的地址引用當前工作表上的單元格。


分享到:


相關文章: