簡體   English   中英

數組,SUM + INDEX/MATCH

[英]Arrays, SUM + INDEX/MATCH

在此處輸入圖像描述

注意:在 Excel 和 Google 表格中嘗試過,但我更喜歡表格。

基本上我想使用INDEXMATCH獲得一組數據的總和(因為參數將取決於下拉菜單):

在此處輸入圖像描述

期望的結果是:

在此處輸入圖像描述

所以這將需要一些東西:

  1. 將單元格 D13(April) 轉換為月份
  2. 將“weekof”列轉換為一個月
  3. 再次使用 INDEX 和 MATCH 和 MATCH,我假設因為它是多個單元格引用。

這是我目前的解決方案:

=SUM(INDEX(D5:I9, MATCH(MONTH(D13&1),ARRAYFORMULA(MONTH(C5:C9)),0), MATCH(E12,D4:I4,0)))

這將返回 NEAREST 值:

270

代替:

804

為什么是這個值?

270+500+34 = 804

如果不嚴格使用 INDEX 和 MATCH,可以使用以下解決方案:

添加額外的列名稱為“月份”,該列將使用 TEXT 函數從日期列中提取月份名稱,如下所示:

=IF(C3<>"",TEXT(C3,"mmmm"),"")

if 語句確保只有填充的日期才有月份值,因為對於一定數量的單元格,您必須使用上述公式填充此列。

現在您可以在單元格 E13 或任何您想要的地方簡單地使用 SUMIF 函數:

=SUMIF(B:B,D13,D:D)

在此處輸入圖像描述 如果您不希望 Month 列出現在數據表中,您可以將其放在表的末尾並隱藏它。

您可以直接使用FILTER然后SUM結果來簡化您的公式:

公式:

=SUM(FILTER(D:D, TEXT(C:C,"MMMM") = E13))

輸出:

輸出

更新:

  • 當值為下拉列表時,上述公式也應更新。 下拉列表只是可以使用預定值更改的數據,除此之外,使用普通單元格時應該是相同的。
  • 要匹配列,請將MATCHINDEX與上面的公式一起使用。 請參閱下面的修改公式。
  • 注意循環依賴。 確保您的范圍不會干擾您放置公式的實際單元格。

列匹配:

=SUM(INDEX(FILTER(D:E, TEXT(C:C, "MMMM") = E13),,MATCH(F12, D4:4, 0)))

輸出2

您可以使用數據透視表並按年和月分組日期。

暫無
暫無

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

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