Board logo

標題: [發問] 依每月最後的日期 加總 [打印本頁]

作者: PJChen    時間: 2020-3-9 21:50     標題: 依每月最後的日期 加總

Dear,
請問可以非陣列的一致性公式,統計三個客戶的個別數量嗎?
依A欄每月最後的日期(不一定是月底,只抓每月最後一個日期)
分別統計C欄 三個客戶數量
1) 大
2) 美
3) 佳
C欄若有其他字,則
作者: p212    時間: 2020-3-10 10:40

回復 1# PJChen
這樣的結果可以嗎?
請參考!
作者: p212    時間: 2020-3-10 11:06

回復 1# PJChen
修正!
2019/12/31與2020/1/31有非單筆客戶
請參考!
作者: ML089    時間: 2020-3-10 15:44

D2 =IF(SUMPRODUCT((TEXT(A2,"yyyymm")=TEXT(A3:A33,"yyyymm"))*(C2=C3:C33))=0,
SUMPRODUCT(B$2:B2,(TEXT(A2,"yyyymm")=TEXT(A$2:A2,"yyyymm"))*(C2=C$2:C2)),"")

下拉複製
作者: cucu    時間: 2020-3-10 17:38

回復 4# ML089


    您的解法讓我大開眼界,佩服!!
作者: hcm19522    時間: 2020-3-10 18:15

D2{=IF(MAX((MONTH(A$2:A$146)=MONTH(A2))*(C$2:C$146=C2)*A$2:A$146)=A2,SUM((MONTH(A$2:A$146)=MONTH(A2))*(C$2:C$146=C2)*B$2:B$146),"")
作者: PJChen    時間: 2020-3-10 20:16

回復 4# ML089
回復 6# hcm19522

感謝...這兩個解法都可以,
能否請教,我其他檔案也有不少是用陣列公式的,如果要像這樣直接打在VBA中,陣列公式要怎麼改才能用??
        xRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
            Range("D2:D" & xRow).Formula = "=IF(MAX((MONTH(A$2:A$146)=MONTH(A2))*(C$2:C$146=C2)*A$2:A$146)=A2,SUM((MONTH(A$2:A$146)=MONTH(A2))*(C$2:C$146=C2)*B$2:B$146),"")"
            Range("D2:D" & xRow).Value = Range("D2:D" & xRow).Value
作者: ML089    時間: 2020-3-10 22:49

回復 7# PJChen

我會建議第一列使用公式

VBA 在將第一列公式複製至下方區域,再將公式轉值

這樣就不用煩惱公式轉寫至VBA裡
作者: PJChen    時間: 2020-3-11 19:29

回復 8# ML089
這個公式很特別,請教TEXT(A3:A33....為什麼是33 ??
D2 =IF(SUMPRODUCT((TEXT(A2,"yyyymm")=TEXT(A3:A33,"yyyymm"))*(C2=C3:C33))=0,
SUMPRODUCT(B$2:B2,(TEXT(A2,"yyyymm")=TEXT(A$2:A2,"yyyymm"))*(C2=C$2:C2)),"")
作者: ML089    時間: 2020-3-14 04:15

回復  ML089
這個公式很特別,請教TEXT(A3:A33....為什麼是33 ??
D2 =IF(SUMPRODUCT((TEXT(A2,"yyyymm")= ...
PJChen 發表於 2020-3-11 19:29



    A3:A33 共有31格,表示一個月最多31天,讓公式比較儲存格計算可以少一點。
若資料很多時就可以看出公式效率
作者: PJChen    時間: 2020-3-15 11:00

回復 10# ML089
了解,,感謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)