天天看點

left join 多條件_将數組資料拆分後再合并,作為字典的鍵,實作多條件資料彙總...

大家好,我們今天繼續講解VBA數組與字典解決方案,今日的内容是第43講,将數組資料拆分後合并,作為字典的鍵,實作多條件的資料彙總。在進入字典的講解後,我給大家講各種實際情況中利用字典的解決方案,讓大家逐漸了解到字典的用處,并學會利用字典來解決實際問題。

今日我們要解決的實際問題是,如何把多個資料放在鍵中,然後在分解開,在之前的講解中,我講過兩個條件放到鍵中,今日來講解多個條件的情況,我們看下面的資料:

left join 多條件_将數組資料拆分後再合并,作為字典的鍵,實作多條件資料彙總...

我們要把上述資料中A.B.C三列的資料作為合并彙總的基準,這個代碼如何寫呢?下面看我給出代碼:

Sub mynzsz_43() '第43講 将數組的拆分後合并作為字典的鍵,實作多條件的資料彙總

Set mydic = CreateObject("scripting.dictionary")

'講資料頁的資料放入數組

myarr = Sheets("資料").UsedRange

'将數組的前三列打碎後放入鍵中

For i = 2 To UBound(myarr)

If Not mydic.exists(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) Then

mydic(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) = myarr(i, 4)

Else

mydic(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) = _

mydic(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) + myarr(i, 4)

End If

Next

Sheets("43").Select

[a:e].Clear

Range("A1:D1") = Array("型号