有網友問到:在 Excel 的工作表中有個日期和數量的報表,如果想要摘要依月份計算數量的總和,該如何處理?(參考下圖)
為了便於說明,選取儲存格A1:B26,按一下 Ctrl+Shift+F3 鍵,定義名稱:日期、數量。
【使用SUMPRODUCT函數】
儲存格E2:=SUMPRODUCT((MONTH(日期)=ROW(1:1))*數量)
複製儲存格E2,貼至儲存格E2:E13。
MONTH(日期)=ROW(1:1):判斷日期中的月份是否為1(ROW(1:1)=1),而ROW(1:1)往下複製會變為ROW(2:2)=2,…。將產生的 True/False 陣列再乘以數量,在運算過程中,True/False 陣列會轉換為 1/0 陣列。
【使用陣列公式】
儲存格E2:{=SUM(IF(MONTH(日期)=ROW(1:1),數量,FALSE))}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。
複製儲存格E2,貼至儲存格E2:E13。
【延伸閱讀】
* Excel-使用SUMPRODUCT函數執行陣列資料運算
* Excel-陣列公式(SUM+IF)、SUMIF、SUMIFS、SUMPRODUCT
* Excel-計算多欄位的間隔欄位小計(SUMPRODUCT)
* Excel-依據日期和類別計算數量予以編號(SUMPRODUCT,TEXT,RIGHT,LEFT)
* Excel-根據日期時間區間計算特定時段內的人數(SUMPRODUCT)
* Excel-互通陣列公式、SUM+IF、SUMIF、SUMIFS、SUMPRODUCT
* Excel-加總同一日期的多個項目(SUMPRODUCT,SUMIF)
【補充說明】
關於函數的詳細說明,可參考微軟網站:
SUMPRODUCT:http://office.microsoft.com/zh-tw/excel-help/HP010342935.aspx
SUMPRODUCT:傳回各陣列中所有對應元素乘積的總和。 |
語法:SUMPRODUCT(array1, [array2], [array3], ...) array1:要求對應元素乘積和的第一個陣列引數。 array2, array3,...:要求對應元素乘積和的第 2 個到第 255 個陣列引數。 註:各陣列必須有相同的維度(相同的列數,相同的欄數)。否則會傳回錯誤值#VALUE!。並且會將所有非數值資料的陣列元素當成0來處理。 |
留言列表