2016-07-22 16 views
0

私はこのグループの例を検索しようとしていましたが、少しのコードスニペットをテストしましたが、それは私が必要とするもので、私はExcel vbaを知るようになっています。 私がしようとしているのは、列Aでグループ化し、列Cにあるそのカテゴリで使用されている値の範囲を取得し、新しいワークシートで結果を取得することです。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 
+0

列A、B、Dは常に1対1の関係になっていますか? –

+1

これはvbaが必要な数式で行うことができますか? –

+0

@ScottCraner:はい、メインシートに記載されています。私は仕事を終わらせて何かを使うことができますが、私はそれを "マクロ"として実行するか、プロセスを実行するためにいくつかのボタンを押すことができると考えていました。これを調べてくれてありがとう。 – sys73r

答えて

0

私は実際にこれを理解しました:

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:最高。

0

あなたが値の範囲であることを、列Cが必要な場合は、例えば2 - 5、それはExcelのテキストです。ピボットテーブルはMin、Max、Sum、Averageを返すことができますが、値の範囲は返しません。

問題を解決するには、VBAを使用する必要があります。

まず、列A、B、Dをいくつかの場所にコピーし、次に[重複を削除]を使用します。 ユニークな組み合わせを見つけるには

例:、その後

A B   D 

1 Soccer  Green 

2 Football Red 

3 Baseball Blue 

4 Tennis  Yellow 

ループを使用して値の範囲を見つけるために:

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 

は、その後、あなたが以下のようなものを持っている必要があります(あなたが将来的にいくつかの新しいレコードを持っていると仮定)ユニークコンビネーション(ここでは4つのユニークなレコードがあります)ごとに

***ループを使って各組み合わせの範囲を調べる方法を知っていると仮定します。

関連する問題