• ベストアンサー

VBAでの重複データ統一についてです。

 いつもお世話になっております。VBA初心者です。 過去の質問で、2つのセルの重複データを一つのデータにする処理があったのですが、3つのセルの重複データを1つのデータにするやり方に苦戦しております。 (A列) (B列) (C列)  A社  鈴木   男性  B社  田中   女性  A社  鈴木   男性  B社  佐藤   女性  B社  田中   女性  A社  鈴木   男性      ↓↓ (A列) (B列) (C列)  A社  鈴木   男性  B社  田中   女性  B社  佐藤   女性  となるようにしたいのです。 サンプルソース等がありましたら、 よろしくお願いいたします。

  • keyed
  • お礼率73% (17/23)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.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

keyed
質問者

お礼

 imogasiさんには何度もご回答いただきありがとうございます。  今回もうまくいきました。

その他の回答 (2)

noname#102878
noname#102878
回答No.2

「過去の質問」を見つけることができたのであれば、それを載せるべきでしょう。 「過去の質問」を意識した質問者の考えと、まったく知らない回答者の考えにずれが生じます。 で、ソースコードじゃないですが、考え方だけ。 A列・B列・C列の優先順でソートする。 先頭行から最終行まで、1行ずつループ。 ループの中で、1つの[変数1]にA列とB列とC列の値を連結したものを入れる。 [変数2]と比べて、内容が違えば別シートに書き出す。 (最初の一発目、変数2の中身は空っぽです) 内容が同じなら何もしない。 [変数1]の内容を[変数2]に移す。 次の行を処理。 ってな感じでどうでしょうか。

keyed
質問者

お礼

 ご回答ありがとうございました。 何とかやりたい処理ができました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

列Dに、列Aと列Bと列Cを連結したものを放り込んで、それを対象としては?

関連するQ&A

  • エクセルのデータ並べ替え(抽出)の方法

    エクセルのデータ並べ替え(抽出)の方法 を教えてください。 下記のようなデータがあるとします。   A    B    C   D 1 田中  東京  千葉  福岡 2 山田  京都  滋賀 3 佐藤  奈良  青森  USA 4 鈴木  カナダ 愛媛 A列は名前、B列以降は文字列です。B列以降はC列までの行、D列までの行とさまざまです。重複セルはありません。 これを下記のように並べ替えたいです。   A    B    C   D 1東京  田中 2千葉  田中 3福岡  田中 4京都  山田 5滋賀  山田 6奈良  佐藤 7青森  佐藤 8USA   佐藤 9カナダ 鈴木 10愛媛  鈴木 こういうことは可能でしょうか??? 教えてください。 よろしくお願いします。

  • ACCESSで重複するデータをまとめたいのですが

    ACCESS超初心者です。 ヘルプを見たのですが解決できなかったので、ご質問させてください。    フィールド        フィールド1 フィールド2 田中  A        田中 A       B 田中  B    →   鈴木 A 鈴木  A        佐藤 C 佐藤   C ACCESSで上記のようにデータをまとめたいのですが どのようなテーブル、クエリを組めばよいでしょうか? ご教示願います

  • EXCEL2003 重複データに色を付けるVBA

    A列のA2からA21に氏名、B列のB2からB21に住所が入力済です。A列で重複しているデータに色をつけて、さらに並び替えをしたいと思います。色は黄色、並び替えの設定は黄色で色を付けたセルがA2から順に表示するVBAを教えていただけませんでしょうか。またお手数でも列をB列、C列に変更した場合についても教えていただけませんでしょうか。VBAコードの貼り付けはできます。よろしくお願いします。

  • エクセル 重複行色付(VBA)について質問です。

    Excelで、2ヶ所の場所を重複しているのかどうかチェックし、重複でしたらその行ごと色を付けたいと思っております。 |    A    |    B   |   C   |   D   |   E   |    田中    1046587920   8/2     8/6    100364987    鈴木    1098463612   8/3     8/5    125698001    森川    1548758743   8/20    8/23    103587410    川島    1046587920   8/22    8/23    100365871    森本    1046587920   8/25    8/26    100364987 例えば、上記の様な一覧があり 「B列」 と 「E列」 とで重複を確かめて、同じであれば色が付く様にVBAを組みたいのですが、現在調べて 「B列」 のみの重複に色付けは出来るようになったのですが、2ヶ所重複に色をつけることで困っております。 上の例で行きますと、田中さんと森本さんの行に色が付く形が理想でして、川島さんの、「B列」は該当しておりますが、「E」列が異なるため、色は付きません。 行数は。2万行前後になるのですが、関数を当てると処理が非常に重くなるため、VBAを試みております。 お知恵をお貸し頂けましたら幸いです。

  • excel2003 2列のデータを1列に

    エクセル2003にて 下記のように2列のデータを1列に表示させたいと思っております。 A列  B列              C列 田中 佐藤              田中 鈴木 池田 このように>      鈴木 後藤 内藤              後藤                     佐藤                     池田                     内藤 C列に入れる数式をお教えください。 よろしくお願いします。

  • エクセルで条件に一致したセルの隣のセルを取得したい

    下のような「得点」という名前のシートがあります。 (「田中」のセルがA1です。)  [ 田中 ][ 10 ][ 200 ]  [ 山田 ][ 21 ][ 150 ]  [ 佐藤 ][ 76 ][ 250 ]  [ 鈴木 ][ 53 ][ 350 ] 別のシートのA1セルに、「佐藤」と入力すると、  [ 佐藤 ] 「得点」シートから「佐藤」の列を見つけて、B1、C1に  [ 佐藤 ][ 76 ][ 250 ] のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。 「得点」シートでは氏名が重複する事はありません。 IF文を使うと思うのですが、いまいち良く分かりませんでした。 よろしくおねがい致します。

  • 重複した(?)セルの内容を一部削除し残りを取り出す

    何時も勉強させて頂いております。 現在、エクセルで困っておりお力を借りたく質問させて頂きたいと 思います。 エクセルで帳票などを作成しているのですが、   A  |     B    |  C  |    D     リーダー|    メンバー  | 欠席者 |  最終参加者  佐藤  |鈴木、齋藤、小林 |     |佐藤、鈴木、齋藤、小林 見づらいと思いますが、こんな感じで入力しています。 A列にはリーダー(必ず1名)、B列にはメンバー(2~4名程度)、 C列には当日欠席する人がいた場合その人の名前を記入し、D列には A列とB列をあわせた人の名前が入っています(A&"、"&Bという感じで)。 今回分らないのは、C列に【小林】と入った場合、 AとBは変更せずにD列には【小林】を抜いた、 【佐藤、鈴木、齋藤】とだけ表示させたいのです。 ※C列に【佐藤】と【小林】が入った場合は、D列には【佐藤】と 【小林】を抜いた【鈴木、齋藤】とだけ表示させたいと思っています。 重複したデータがあった場合、行単位で消す方法は分るのですが、 【セルの中のデータから同じ名前(重複と考えて)だけを抜き出した 残りのデータだけを取り出す】方法が分からないのです。 このExcelデータを使用する人はパソコンに詳しくなく、 データの入力、削除(セルの内容全て)をするのが精一杯な年配の方で(変更はできない)私としては、ただ入力するだけでOKというデータを 作っているのですが、こういった事はできますでしょうか? データを全部入れなおせば簡単なのですが、 A列とB列はSeet2で使用し、D列はSeet3で使用しており、更に この上のような行が数十行あるのです。。。 どうぞお力をお貸し下さい><

  • エクセル 重複セルについて

    住所リストを制作しておりまして、 全リストから、一定の人を削除したリストを作りたいのですが、 方法が分かりません。 重複しているセルをソートできればと思うのですが、 どなたかお教えいただけますでしょうか?   A列  B列 C列  D列  1 住所 田中     太田 2 住所 斉藤     田中 3 住所 太田     木村 4 住所 木村     渡邉 5 住所 小林  B列にある氏名の中にD列の氏名が重複していたら、 下記のようなことができますでしょうか? ●C列に”重複”と出る   A列  B列 C列    1 住所 田中 重複 または ●B列と重複するD列のセルが隣に並び変えられる   A列  B列 C列  D列  1 住所 田中     田中 なお、A列とB列は一緒にしたいので、 B列だけが並び変えられることは避けたいです。 緊急SOSです! よろしくお願いいたします。

  • 重複データについて

    accessで重複しているデータを抽出したいのですが、初心者のためよくわかりません。 1列目 2列目 A   2  A   3 B   4 C   5 C   5 C   5 というデータがあった場合、1列目は重複していて2列目は重複していないデータだけを抽出したい場合、どういうクエリにすればいいでしょうか? 重複クエリではこの場合、Cも出力されてしまうためどうしたらいいのか悩んでおります。 よろしくお願いいたします。

  • どんどん増えるデータの重複しないデータの個数

       A列    B列 1 2    3      6 3  4    a     a-1 5    a      a-2 6    b      b-1 7    b      b-2 8    b      b-3 9    c      c-1 たとえば上記のような表を作りたいと思っています。、 10行目以降もデータは増えていきます。 作業列を作らずにA2セルにA4以降のA列の重複しないデータの個数を 表示させる方法を教えてください。

専門家に質問してみよう