要求:按條件1進(jìn)行多列求和。 思路: 1、將單元格數(shù)據(jù)放進(jìn)數(shù)組arr,定義數(shù)組brr,設(shè)定和arr一樣大小,用來存儲(chǔ)求和的數(shù)據(jù) 2、對(duì)條件1進(jìn)行計(jì)數(shù),用字典去重復(fù)值計(jì)數(shù)。 依次遍歷數(shù)組arr的數(shù)據(jù),k=0,對(duì)條件1去重復(fù)計(jì)數(shù),并用字典存儲(chǔ)計(jì)數(shù)。 A放進(jìn)數(shù)組brr的第一行,計(jì)數(shù)k=k 1將其行號(hào)寫入字典,d('A')=k---->d('A')=1,此時(shí),數(shù)組brr有一條數(shù)據(jù) B放進(jìn)數(shù)組brr的第二行,計(jì)數(shù)k=k 1將其行號(hào)寫入字典,d('B')=k---->d('B')=2,此時(shí)數(shù)組brr有兩條數(shù)據(jù) C放進(jìn)數(shù)組brr的第三行,計(jì)數(shù)k=k 1將其行號(hào)寫入字典,d('C')=k---->d('C')=3,此時(shí)數(shù)組brr有三條數(shù)據(jù) D放進(jìn)數(shù)組brr的第四行,計(jì)數(shù)k=k 1將其行號(hào)寫入字典,d('D')=k---->d('D')=4,此時(shí)數(shù)組brr有四條數(shù)據(jù) 當(dāng)遍歷到第5條數(shù)據(jù)時(shí),A重復(fù)了,因?yàn)橐呀?jīng)將A作為關(guān)鍵字寫入了字典,此時(shí)通過r=d('A')讀取A在字典中的item,就是1。將數(shù)值1、2、3分別相加, 925 714; 311 309; 892 810 ,相加后的和仍然放在brr中的原來的位置,并用最新的值取代原來的值。 每當(dāng)遇到重復(fù)數(shù)據(jù)的時(shí)候,都是如此操作,完成累加。 如遇到重復(fù)的B 這樣就相當(dāng)于依次完成了按條件求和。 每個(gè)條件都重復(fù)如此的操作完成累加。 參考代碼如下: 例子2,多條件多列求和,原理一樣。將多個(gè)條件用 & 合并成一個(gè)key即可。 參考代碼: 希望大家寫寫這兩個(gè)代碼,常常用來求和。 |
|