要求:按條件1進行多列求和。
思路:
1、將單元格數據放進數組arr,定義數組brr,設定和arr一樣大小,用來存儲求和的數據
2、對條件1進行計數,用字典去重複值計數。
依次遍歷數組arr的數據,k=0,對條件1去重複計數,並用字典存儲計數。
A放進數組brr的第一行,計數k=k+1將其行號寫入字典,d("A")=k---->d("A")=1,此時,數組brr有一條數據
B放進數組brr的第二行,計數k=k+1將其行號寫入字典,d("B")=k---->d("B")=2,此時數組brr有兩條數據
C放進數組brr的第三行,計數k=k+1將其行號寫入字典,d("C")=k---->d("C")=3,此時數組brr有三條數據
D放進數組brr的第四行,計數k=k+1將其行號寫入字典,d("D")=k---->d("D")=4,此時數組brr有四條數據
當遍歷到第5條數據時,A重複了,因為已經將A作為關鍵字寫入了字典,此時通過r=d("A")讀取A在字典中的item,就是1。將數值1、2、3分別相加,
925+714; 311+309; 892+810 ,相加後的和仍然放在brr中的原來的位置,並用最新的值取代原來的值。
每當遇到重複數據的時候,都是如此操作,完成累加。
如遇到重複的B
這樣就相當於依次完成了按條件求和。
每個條件都重複如此的操作完成累加。
參考代碼如下:
例子2,多條件多列求和,原理一樣。將多個條件用 & 合併成一個key即可。
參考代碼:
希望大家寫寫這兩個代碼,常常用來求和。
閱讀更多 套路Excel 的文章