今天我們來談談EXCEL中的條件求和。
我們將利用不同的技術實現,而不是使用函數的6種方法
直接開始吧!
數據源
結果
1、數據透視表-難度系統★☆☆☆☆
插入-透視表,行欄位-銷售員,值-金額
2、 函數公式法-難度係數:★★☆☆☆
這裡想要實現完全自動,需要姓名動態去重,所以給2顆星,否則SUMIF(S),一顆心,難度係數較小
銷售員去重:=IFERROR(INDEX(B:B,MATCH(,COUNTIF($H$1:H1,$B$2:$B$226),)+1),"")
金額合計:=SUMIF(B:B,H2,E:E)
3、SQL方法-難度係數:★★☆☆☆
連接數據源文件,數據-現有連接-瀏覽更多-選擇SQL法表-確定插入
在連接屬性-定義中寫入SQL
select 銷售員,SUM(金額) as 合計金額 from [SQL$] group by 銷售員
4、Power Query-分組法-難度係數:★★☆☆☆
PQ方法比較簡單,基本也是簡單的操作,加載到PQ後,值需要轉換分組依據中,選擇按照銷售員分組,金額求和即可,基本同透視表類似
5、Power Pivot-難度係數:★★☆☆☆
這裡我們使用的是2016版本已經內嵌的Power Pivot
加載進來,可以右擊編輯Dax,輸入以下Dax公式
PBI中直接寫,不需要evaluate
evaluate
summarize('銷售表',[銷售員],"金額合計",SUM('銷售表'[金額]))
6、VBA法--難度係數:★★★★☆
難度給到四顆星,因為VBA相對新手有點難度,整體代碼比較簡單,我們使用字典匯總
代碼如下:
Sub 匯總()
arr = Range("A1").CurrentRegion.Value
Dim d As Object
Set d = CreateObject("scripting.dictionary")
For i = 2 To UBound(arr)
d(arr(i, 2)) = d(arr(i, 2)) + arr(i, 5)
Next
[G1].Resize(d.Count, 2) = Application.Transpose(Array(d.keys(), d.items()))
End Sub
你會幾種呢?多一種方法,就多一種選擇,我們可以根據場景選擇最合適!
今天就到這裡,希望大家都能學會,那麼你的EXCEl水平起碼有中級了!
#職場excel小技巧#