如果相應行滿足條件,則範圍內的總金額

如果相應行滿足條件,則範圍內的總金額

我正在嘗試創建一個電子表格來根據相應的行計算每個月的小時數總和。為了讓範例更清楚一些,對於下面的 Excel,我應該為客戶端 1 取得值 28,為客戶端 3 取得值 16。

我正在嘗試使用 SUMIF 函數,但求和範圍不能位於多個儲存格上。

在此輸入影像描述

這就是我希望查看資訊的方式:

在此輸入影像描述

答案1

您可以建立一個簡單的公式:

=SUM(IF(B5:B21="Client 1",G5:AK21))

即透過 2 個步驟進行數組計算:

  1. 如果 B 列 =“客戶端 1”,則傳回整行數字(甚至是空白)。
  2. 一旦我擁有了所有行(其中大多數行包含空白),您只需將這些值相加即可。

"Client 1"如果需要,您可以在公式中替換為對外部儲存格的參考。另外,請確保公式第二部分中月份的整個範圍都是準確的G5:AK21

答案2

建立在優秀=SUM(IF())方法的基礎上@戴夫可以使用OFFSET函數選擇與一年中 12 個月中的每一個月對應的列。

OFFSET函數透過其高度和寬度定義一個矩形範圍,該範圍的左上角根據指定工作表單元格下方的行數和右側的列數進行定義。在下面的方法中,我使用以黃色突出顯示的儲存格作為指定儲存格 (cell E17)。

範圍A2:E14(參見下面的屏幕截圖)提供了一些信息,或者元數據,關於一年中 12 個月的每日值列相對於突出顯示的單元格的位置。有用的值在標題列中列偏移量因此,例如,對於1 月,每日值從黃色單元格右側的第1 列開始,佔據31 列,對於2 月,每日值從黃色單元格右側的第32 列開始,佔據29 列(更改儲存格中的年份變為非閏年B1會將儲存格中的值變更E4為 28),等等。月#累計是計算所需的中間值列偏移量

元數據構建

按月和客戶匯總資料總數的公式可以寫為細分格式:

=SUM(
IF(Sheet1!$B$18:$B$23=$A2,
OFFSET(Sheet1!$E$17,
1,
VLOOKUP(B$1,Sheet1!$A$3:$E$14,4),
6,
VLOOKUP(B$1,Sheet1!$A$3:$E$14,4)
)
)
)

或者,作為一個完整的公式

=SUM(IF(Sheet1!$B$18:$B$23=$A2,OFFSET(Sheet1!$E$17,1,VLOOKUP(B$1,Sheet1!$A$3:$E$14,4),6,VLOOKUP(B$1,Sheet1!$A$3:$E$14,5))))

其中假設元資料和每日資料包含在工作表中Sheet1

此公式適用於 1 月/客戶 1,並且可以複製到其他月份和客戶的其餘單元格,如下面的螢幕截圖部分所示。確保元資料和結果表中使用的月份名稱完全匹配,以避免#N/A結果中發生錯誤。

建構結果表

此函數的第二和第四個參數OFFSET是 1 和 6,因為資料從黃色突出顯示單元格之後的第一行開始,在所示的範例中,有 6 行資料。如果行數不同,只需替換正確的值即可。

第三個和第五個參數只是使用函數VLOOKUP來找出列偏移量所涉及月份的元資料中的值。

相關內容