在單一條件下對多行求和

在單一條件下對多行求和

假設我在工作表中有下表:

表示例

以及表中的下表__數據:

表2 範例

在片材中__數據我想對給定類別名稱的 P、R、T、V 和 X 列中的所有值求和。

對於單行,我知道可以使用以下公式:(例如 cat6)

=IF(
    SUMIF(month!$O$5:$O$34;__data!$A7;month!$P$5:$P$34)<>0;
    SUMIF(month!$O$5:$O$34;__data!$A7;month!$P$5:$P$34);
    "")

現在,我相信這應該可以通過SUMPRODUCT.但我無法理解應該如何編碼。

我有這個 SUMPRODUCT 公式,但這會導致#VALUE!錯誤;

=SUMPRODUCT(
    --(month!$O$5:month!$O$34=__data!$A7);
    (
        month!$P$5:month!$P$34 +
        month!$R$5:month!$R$34 + 
        month!$T$5:month!$T$34 + 
        month!$V$5:month!$V$34 + 
        month!$X$5:month!$X$34)
)

我相信這與 P、R、T、V 和 X 中的值的填充方式有關。這是透過以下公式完成的;

=IF(SUMIF($B$5:$B$123;O8;$D$5:$D$123)<>0;SUMIF($B$5:$B$123;O8;$D$5:$D$123);"")

答案1

您可以使用一個公式輕鬆完成此操作。但是您需要有一種方法來傳回不連續的列。

  • 我為資料表命名是catTbl為了更容易參考。
  • 使用以下函數尋找行MATCH
    • =MATCH(A2,INDEX(catTbl,0,1),0)
      • 類別位於 A2 中,INDEX函數傳回第一列中的所有行。
    • 構造N(IF(1,{2,4,6,8,10})) will return the relevant columns to theINDEX` 函數。
    • 然後只是SUM數組

所以整個公式:

=SUM(INDEX(catTbl,MATCH(A2,INDEX(catTbl,0,1),0),N(IF(1,{2,4,6,8,10}))))

在此輸入影像描述

在此輸入影像描述

答案2

一般來說,使用不連續的 Excel 公式很困難。

我建議新增一個輔助行,在其中指示要匯總哪些列,然後您可以使用這個相對簡單的公式:

=SUMIF($Q$4:$Y$4,1, INDEX($Q$6:$Y$19,MATCH(M6,$P$6:$P$19,0),0))

在此輸入影像描述

相關內容