請教各位大神,有辦法將同項目並同月份的做合計嗎?K欄的單一比對的目前會用這兩種公式K2=OFFSET($A$1,MATCH(J2,$A$2:$A$6,0),MATCH($K$1,$B$1:$G$1,0))或K3=VLOOKUP(J3,$A$1:$G$6,MATCH($K$1,$A$1:$G$1,0),0)但是同月份合計的就想不到要怎麼做了...懇請大神賜教!
我想到兩個方式第一種=SUMIFS(B2:G2,B7:G7,11)其中B7:G7的部分自己想辦法放在你想要的欄位裡,我把它暫時放在你畫面裡還沒用到的欄位裡裡面對應的就是=MONTH(B1) ... =MONTH(B7)就是有一個欄位去自動算出該日期的月份這樣=SUMIFS(B2:G2,B7:G7,11)運算式就可以把所有11月份的都加總起來了第二種=SUMIFS(B2:G2,B1:G1,">="&DATE(2021,11,1),B1:G1,"<"&DATE(2021,12,1))把所有日期在包含2021/11/1以後,在不包含2021/12/1以前的全部加總起來這個缺點是如果複製表格剛好換年分,要自己全部修改,但如果有一個欄位剛好填寫年分,用欄位取代2021就比較好處理
Yaude Huang wrote:我想到兩個方式第一種(恕刪) 感謝大神分享!但是這兩種方法好像都是在已知該項目的列數,才能直接用SUMIFS去指定要搜尋的範圍並加總;若是不知道該項目所在列數的情況下,有辦法再加公式去判斷該項目所在的列數,然後才去做同月份的合計嗎?
c8836109 wrote:若是不知道該項目所在列數的情況下,有辦法再加公式去判斷該項目所在的列數,然後才去做同月份的合計嗎? 可以,但未來不好維護如果您資料不多,或是才剛開始建立資料,建議重打換成下面這種排列方式
二表格項目同一列L2:=SUMPRODUCT((MONTH($B$1:$G$1)=11)*(B2:G2))按CTRL+SHIFT+ENTER鍵完成陣列公式輸入。11可以直接設定或抓取某一儲存格內容。二表格項目不同列L2:=SUMPRODUCT((MONTH($B$1:$G$1)=11)*(OFFSET($A$1,MATCH(J2,$A$2:$A$6,0),1,1,6)))按CTRL+SHIFT+ENTER鍵完成陣列公式輸入。11可以直接設定或抓取某一儲存格內容。1,1,6的6代表要抓取的欄數。
c8836109 wrote:感謝大神分享!但是這(恕刪) sumifs只能加總一整排的數字,後面是過濾條件像你這樣的表格,如果要加總二維的表格可能就不適合,那就只能參考其他人sumproduct的作法要不然你可以修改一下資料的陳列方式例如這樣我習慣會在資料後面塞一排特別用其他顏色分隔公式套用分隔那一排以後只要插入新的一排,完全不用修改公式向這個範例第15排特別標成黃色,以後只要插入在這排之前,就不用傷腦筋位置跑掉
=MMULT(TRANSPOSE(IF(($A$2:$A$6=J2),1,0)),MMULT(IF(B$2:G$6="",0,B$2:G$6), TRANSPOSE(IF((MONTH($B$1:$G$1)=11),1,0))))改這樣吧裡面的紅字部分 分別對應第一直排的A~E字串第一橫排的日期,月份11自己改還有整個數字區域應該很好理解原理就是用整個array去乘另一組1與0的array這組1與0的array,就是用月份判斷去轉換的會得到一組橫排總和的array再去與另一組1與0的array做最後乘法,過濾出A~E也就是說最左邊直排的部分,甚至你可以有兩個以上的A~E都可以運算出來
目前想到最簡單的作法=SUM(FILTER(B$2:G$6,A$2:A$6=J2)*IF((MONTH($B$1:$G$1)=11),1,0))細部分析=FILTER(B$2:G$6,A$2:A$6=J2)會將第一排是C的過濾出來=IF((MONTH($B$1:$G$1)=11),1,0)會將11月份過濾出來=FILTER(B$2:G$6,A$2:A$6=J2)*IF((MONTH($B$1:$G$1)=11),1,0)兩者合併就是同時是C與11月份的過濾出來最後就是用SUM加總但是這有個缺點就是第一排的A~E,裡面不能有重複否則第一步過濾C的那個動作會超過一排,最後會出現錯誤
繼續改變作法支援A~E可以重複=SUM(FILTER(FILTER(B$2:G$6,MONTH($B$1:$G$1)=11, 0),A$2:A$6=J2, 0))分解做法=FILTER(B$2:G$6,MONTH($B$1:$G$1)=11, 0)先將11月份的資料過濾出來,後面的0是如果都沒有資料傳回 0=FILTER(FILTER(B$2:G$6,MONTH($B$1:$G$1)=11, 0),A$2:A$6=J2, 0)加上第二層過濾,挑出最左邊屬於J2的部分 範例是"C"最後用SUM做加總可以達成的方式有很多方法,過去我沒想過這種需求我大都用能搭配sumifs的版面設計來達成需求sumproduct 早期我也會使用,但我嫌它閱讀性較差,學會sumifs這類的函數後就很少用了至於後來陳列的這些方法是今天去查excel函數表剛學來的多參考一些範例,多嘗試就能夠找出方法來了