簡體   English   中英

EXCEL:應用於 INDEX MATCH 搜索的 SUMIFS 標准等於一個值

[英]EXCEL: SUMIFS criterion applied to a INDEX MATCH search equals a value

我花了幾乎一整天的時間試圖弄清楚這一點。 我在這里和其他各種網站上閱讀了很多主題。 這就是我想要做的:

我有總銷售額 output。 它很大,上面的項目數量取決於它查看的時間范圍。 系統中存在重大缺陷,我無法按地區獲得數據。 該信息不存儲在系統中。 記錄僅存儲客戶姓名、產品信息、單位數量、價格和購買日期。 我想獲得按地區銷售的每件商品的總數,以便我可以比較不同地區的商品受歡迎程度。

只有大約 50 個客戶,所以我可以創建一個單獨的表來為客戶分配一個區域。

所以,我有三張表: 表 1:銷售

+-----------------------------------------------------+
|Customer Name | Product | Amount | Price |   Date    |
-------------------------------------------------------
| Joe's Fish   | RT-01   |      7 |  5.45 | 2020/5/20 |
-------------------------------------------------------
| Joe's Fish   | CB-23   |     17 |  0.55 | 2020/5/20 |
-------------------------------------------------------
| Mack's Bugs  | RT-01   |      4 |  4.45 | 2020/4/20 |
-------------------------------------------------------
| Joe's Fish   | VX-28   |      1 |  1.20 | 2020/5/13 |
-------------------------------------------------------
| Karen's \/   | RT-01   |      9 |  3.45 | 2020/3/20 |
+-----------------------------------------------------+

表 2:地區

+----------------------+
|  Customer   | Region |
------------------------
| Joe's Fish  |     NA |
------------------------
| Mack's Bugs |     NA |
------------------------
| Karen's \/  |     EU |
+----------------------+

我的結果在表 3 中:

+----------------------+
|       |   NA |    EU |
------------------------
| RT-01 |   11 |     9 |
+----------------------+

所以看看我為這個問題補的數據,我想比較一下在北美銷售的 RW-01 和在歐洲銷售的數量。 如果我在銷售表的末尾添加一個 INDEX MATCH 列,我可以做到這一點,但每次更新銷售信息時我都必須這樣做。 有沒有辦法做一個像這樣的 SUMIFS:

SUMIFS(Sheet1!$D:$D,Sheet1!$A:$A,INDEX(Sheet2!$B:$B,MATCH(Sheet1!#Current A#,Sheet2!$A:$A))=Sheet3!$B2,Sheet1!$B:$B,Sheet3!$A3)
?

我認為使用 SUMIFS 很難做到這一點,因為您匹配的列必須是范圍,但您當然可以使用 SUMPRODUCT 和 COUNTIFS 做到這一點:

=SUMPRODUCT(Sheet1!$C$2:$C$10*(Sheet1!$B$2:$B$10=$A2)*COUNTIFS(Sheet2!$A$2:$A$5,Sheet1!$A$2:$A$10,Sheet2!$B$2:$B$5,B$1))

在此處輸入圖像描述

我不建議使用全列引用,因為它可能會很慢。

順便說一句,我假設 Sheet2 中沒有針對客戶和區域的特定組合的重復項 - 如果有,您可以使用

=SUMPRODUCT(Sheet1!$C$2:$C$10*(Sheet1!$B$2:$B$10=$A2)*
(COUNTIFS(Sheet2!$A$2:$A$5,Sheet1!$A$2:$A$10,Sheet2!$B$2:$B$5,B$1)>0))

編輯

值得使用公式的動態版本,盡管它並不優雅:

=SUM(Sheet1!$C2:INDEX(Sheet1!$C:$C,MATCH(2,1/(Sheet1!$C:$C<>"")))*(Sheet1!$B2:INDEX(Sheet1!$B:$B,MATCH(2,1/(Sheet1!$B:$B<>"")))=$A2)*
(COUNTIFS(Sheet2!$A$2:INDEX(Sheet2!$A:$A,MATCH(2,1/(Sheet2!$A:$A<>""))),Sheet1!$A2:INDEX(Sheet1!$A:$A,MATCH(2,1/(Sheet1!$A:$A<>""))),Sheet2!$B$2:INDEX(Sheet2!$B:$B,MATCH(2,1/(Sheet2!$B:$B<>""))),B$1)>0))

由於您需要在 memory 中進行匹配,我認為在 Excel 中不可行,因此您必須使用 vba 字典。 另一方面,如果您的銷售表中的列數是固定的,您可以格式化為表格並在 F 中添加您的索引匹配。更新銷售數據時,刪除從第 3 行開始的所有行並復制粘貼更新值。 Excel 將自動對所有行應用索引匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM