[英]Excel VBA - Group Data by Column A, Get the Range Value from C - Copy results to New Sheet
我一直在嘗試搜索此分組的示例,並測試了一些代碼段,但是由於我剛剛了解Excel vba,因此無法使其適應我的需要。 我想做的是按A列分組,然后獲取該類別中C列中使用的值的范圍,並在新的工作表中獲得結果。
主表。
A B C D
3 Baseball 4 Blue
2 Football 1 Red
2 Football 3 Red
3 Baseball 4 Blue
1 Soccer 2 Green
3 Baseball 4 Blue
1 Soccer 3 Green
1 Soccer 5 Green
2 Football 2 Red
預期成績:
新工作表。
A B C D
1 Soccer 2-5 Green
2 Football 1-3 Red
3 Baseball 4 Blue
如果您需要C列是一個值的范圍,例如2 - 5
,則它是Excel中的文本。 數據透視表只能返回最小值,最大值,總和,平均值,但不能返回值的范圍。
您將需要使用VBA解決該問題。
首先,將A,B,D列復制到某個位置,然后使用“刪除重復項”。 找出唯一組合。
例如:(假設您將來有一些新記錄)
A B C D
3 Baseball 4 Blue
2 Football 1 Red
2 Football 3 Red
3 Baseball 4 Blue
1 Soccer 2 Green
3 Baseball 4 Blue
1 Soccer 3 Green
1 Soccer 5 Green
2 Football 2 Red
4 Tennis 3 Yellow
然后,您應該具有以下內容:
A B D
1 Soccer Green
2 Football Red
3 Baseball Blue
4 Tennis Yellow
然后使用Loop來找出每個唯一組合的值的范圍(這里有4個唯一記錄)。
***假設您知道如何使用循環來找出每種組合的范圍。
我實際上已經弄清楚了:
For Each key In fCatId.Keys
'Debug.Print fCatId(key), key
With wshcore
llastrow = wshcore.Range("A" & Rows.Count).End(xlUp).Row
.Range("A1:N" & llastrow).AutoFilter
.Range("A1:N" & llastrow).AutoFilter Field:=1, Criteria1:=fCatId(key)
lwmin = WorksheetFunction.Subtotal(5, Range("H:H"))
lwmax = WorksheetFunction.Subtotal(4, Range("H:H"))
我正在獲取列a:fcatid,b:鍵,lwmin:最小值,lwmax:最高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.