在 Excel 中對多行求和

在 Excel 中對多行求和

假設我有下表:

(還不能嵌入圖像)

我想找出第一天售出的蘋果總數,無論賣給哪位客戶。

我有點熟悉,INDEX/MATCH但不太確定如何繼續。

我知道該SUMIF函數只能用於對所需的日期進行求和,但我不確定如何使用 來對多行求和INDEX/MATCH

我正在尋找的輸出如下:

(也不能嵌入這個)

但最重要的是,我想知道如何對多個特定行求和因此我要求B16 的配方

答案1

如果您可以選擇取消合併 A 列中的儲存格並將其標準化,那麼簡單的方法SUMIFS應該可行。否則,請嘗試以下操作:

=SUMPRODUCT($C$2:$C$13,
1*($B$2:$B$13=$A16),
1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)),
1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1)))

結果:

╔════════╦════╦════╗
║  Day   ║ 1  ║ 2  ║
╠════════╬════╬════╣
║ Apple  ║ 60 ║ 90 ║
║ Orange ║  0 ║ 85 ║
║ Pear   ║ 75 ║  0 ║
╚════════╩════╩════╝

來源:

修改了公式在這裡找到:

解釋:

核心部分是SMALL函數

SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)

它為指定範圍建立行號數組,其中不包含任何內容的儲存格 ( ="") 的值比對應的行號 ( +100*) 大 100。另一方面,不符合條件的儲存格(即非空白儲存格)將僅被指派其行號。該數組作為第二個參數傳遞給SMALL函數B$15,告訴它獲取第 k 個數組中最小的項。

因此,我們想要對以日期開頭的行進行求和,這就是這部分的作用:

1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15))

但是,我們也希望將總計限制為下一個非空白儲存格正上方的儲存格;因此,<運算符 and B$15+1(即第 (k+1) 個最小的項目)在以下部分:

1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1))

答案2

如果您可以取消合併Day欄位的儲存格,以便日期數字出現在每一行中,數據透視表將是迄今為止獲得您所需結果的最簡單方法:

樞

相關內容