- ベストアンサー
VBAでの重複データ統一についてです。
いつもお世話になっております。VBA初心者です。 過去の質問で、2つのセルの重複データを一つのデータにする処理があったのですが、3つのセルの重複データを1つのデータにするやり方に苦戦しております。 (A列) (B列) (C列) A社 鈴木 男性 B社 田中 女性 A社 鈴木 男性 B社 佐藤 女性 B社 田中 女性 A社 鈴木 男性 ↓↓ (A列) (B列) (C列) A社 鈴木 男性 B社 田中 女性 B社 佐藤 女性 となるようにしたいのです。 サンプルソース等がありましたら、 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2のご回答と似ていますが、1票を投じる意味で (1)データを幸いにソートキーが3つまでなので 手作業でソートする。A,B,C列がキー。取りあえず質問の関連だけなら、優先項目、昇降関係なし。 (2)VBAで最下行(lastr)を知り set sh1=workasheets("sheet1") set sh2=workasheets("sheet2") maekey=sh1.Cells(1,"a") & sh1.cells(1,"b") & sh1.cells(1,"c") j=1 '---------- for i=1 to lastr key=sh1.Cells(i,"a") & sh1.cells(i,"b") & sh1.cells(i,"c") if maekey=key then else sh2.cells(j,"a")=sh1.cells(i,"a") ・・・ maekey=key j=j+1 end if next i
その他の回答 (2)
「過去の質問」を見つけることができたのであれば、それを載せるべきでしょう。 「過去の質問」を意識した質問者の考えと、まったく知らない回答者の考えにずれが生じます。 で、ソースコードじゃないですが、考え方だけ。 A列・B列・C列の優先順でソートする。 先頭行から最終行まで、1行ずつループ。 ループの中で、1つの[変数1]にA列とB列とC列の値を連結したものを入れる。 [変数2]と比べて、内容が違えば別シートに書き出す。 (最初の一発目、変数2の中身は空っぽです) 内容が同じなら何もしない。 [変数1]の内容を[変数2]に移す。 次の行を処理。 ってな感じでどうでしょうか。
お礼
ご回答ありがとうございました。 何とかやりたい処理ができました。
- bin-chan
- ベストアンサー率33% (1403/4213)
列Dに、列Aと列Bと列Cを連結したものを放り込んで、それを対象としては?
お礼
imogasiさんには何度もご回答いただきありがとうございます。 今回もうまくいきました。