問題案例
有如下兩個工作表(Sheet1和Sheet2):
在sheet1中的C2行獲得一個結果(項目1的1月收入),是對sheet2中的A列篩選出“項目1”
+B列篩選出“202401”
而獲得對應C列的結果。借助excel的公式如何實現。
Sheet1 - 總覽表
項目 | 收入 | 1月收入 | 2月收入 |
---|---|---|---|
項目1 | |||
項目2 |
Sheet2 - 詳細收入記錄
項目 | 年月 | 收入 |
---|---|---|
項目1 | 202401 | 100 |
項目1 | 202402 | 130 |
項目2 | 202401 | 200 |
項目2 | 202402 | 230 |
目標:在Sheet1中根據項目名稱和月份獲取對應的收入數據。
解決方法
方法一:使用 INDEX
和 MATCH
函數組合
在Sheet1的C2單元格中,我們可以使用數組公式來匹配項目1在202401月份的收入:
=INDEX(Sheet2!C:C, MATCH(1, (Sheet2!A:A="項目1")*(Sheet2!B:B=202401), 0))
輸入上述公式后,使用Ctrl
+ Shift
+ Enter
來確認,Excel會處理它作為一個數組公式。
方法二:使用 SUMIFS
函數
在Sheet1的C2單元格中,可以使用SUMIFS
函數來實現相同的目標,而無需輸入數組公式:
=SUMIFS(Sheet2!C:C, Sheet2!A:A, "項目1", Sheet2!B:B, 202401)
這個公式會返回所有滿足條件(項目為“項目1”且年月為“202401”)的收入值的總和。
知識點拓展
INDEX
函數
INDEX
函數返回表格中指定單元格的值,或者某個區域中的某個單元格的值。它的基本語法是:
=INDEX(數組, 行號, 列號)
MATCH
函數
MATCH
函數搜索指定項在數組中的位置。它的基本語法是:
=MATCH(查找值, 查找數組, 匹配類型)
SUMIFS
函數
SUMIFS
函數可以根據一個或多個條件對范圍的值求和。它的基本語法是:
=SUMIFS(求和范圍, 條件范圍1, 條件1, 條件范圍2, 條件2, ...)
動態數組
在最新版本的Excel中,不需要使用Ctrl
+ Shift
+ Enter
來創建數組公式,因為它支持動態數組。只需輸入公式并按Enter
即可。
注意事項
- 確保在使用公式時正確引用了工作表名和單元格范圍。
- 在使用
MATCH
函數時,如果數組中沒有找到查找值,將返回錯誤。 SUMIFS
函數在有多條相同條件的記錄時能返回正確的總和,這適用于求和而非單一值的匹配。