答案1
您可以建立一個簡單的公式:
=SUM(IF(B5:B21="Client 1",G5:AK21))
即透過 2 個步驟進行數組計算:
- 如果 B 列 =“客戶端 1”,則傳回整行數字(甚至是空白)。
- 一旦我擁有了所有行(其中大多數行包含空白),您只需將這些值相加即可。
"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
來找出列偏移量和列所涉及月份的元資料中的值。