簡體   English   中英

Excel VBA-按列A分組數據,從C中獲取范圍值-將結果復制到新工作表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM