• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【少し急いでます】エクセルについて教えてください!)

Excelの重複データをまとめる方法とは?【急募】

このQ&Aのポイント
  • Excel2000を使っている場合、A列に重複するデータがあり、B列に別のデータがある場合、重複したデータを1行にまとめる方法を知りたいです。
  • 例えば、A列に001が3行あり、B列にaaa、bbb、cccがある場合、1行にまとめてB列のデータをつなげたいです。
  • Excelでこのような処理を行う方法を教えてください。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1が元の表でお示しのデータが2行目からあるとします。当然A列ではデータが昇順で並べられているものとします。 作業列を2つ設けます。 C2セルには次の式を入力します。 =IF(B2="","",IF(COUNTIF(A$2:A2,A2)=COUNTIF(A:A,A2),MAX(C$1:C1)+1,"")) D2セルには次の式を入力します。 =IF(B2="","",IF(A2=A1,D1&"・"&B2,B2)) C2セルとD2セルを選択したのちに右下隅の■をクリックして下方にドラッグコピーします。 お求めの表をシート2に表示させるとしてA2セルには次の式を入力しB2セルまで横にドラッグコピーし、その後下方にもドラッグコピーします。 =IF(COUNTIF(Sheet1!$C:$C,ROW(A1))=0,"",INDEX(Sheet1!$A:$D,MATCH(ROW(A1),Sheet1!$C:$C,0),IF(COLUMN(A1)=1,1,IF(COLUMN(A1)=2,4)))) なお、以上の操作ではシート1のA列の番号は01などの数値である必要もありません。

a1213ya
質問者

お礼

ありがとうございます! KURUMITOさんに教えていただいたやり方でやったら、サクッとできました! 本当に感謝です^^ この関数、私もマスターできるように勉強します。

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

こんにちは、マクロですが Sub Test()   Dim myDic As Object   Dim Str As Variant   Dim c As Range   Set myDic = CreateObject("Scripting.Dictionary")   For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))     Str = c.Value     If Not myDic.Exists(Str) Then       myDic(Str) = c.Offset(, 1).Value     Else       myDic(Str) = myDic(Str) & "・" & c.Offset(, 1).Value     End If   Next   Range("A:B").ClearContents  '元データの消去   '集計したデータを貼り付け   Range("A1").Resize(myDic.Count, 2).Value = _     Application.Transpose(Array(myDic.Keys, myDic.Items))   Set myDic = Nothing End Sub

a1213ya
質問者

お礼

ありがとうございます! 結局は関数を使ってやりましたが、ご丁寧な回答に感謝です。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

では、初心者さんでも容易なごく簡単な数式だけで結果を出してみます。 手順: A1に「番号」と記入 A2以下に番号を並べます B1に「データ」と記入 B2以下にB列のデータを並べます。 C1に「作業」と記入 C2に =B2&IF(COUNTIF(A3:A$30000,A2),"・"&VLOOKUP(A2,A3:C$30000,3,FALSE),"") と記入し、リスト下端までコピー貼り付けます A列を列選択 データメニューのフィルタから「フィルタオプションの設定」を開始  指定した範囲 にマーク  抽出範囲にE1セルを指定  重複するレコードは無視するにチェック してOKします F1に「結果」と記入 F2に =VLOOKUP(E2,A:C,3,FALSE) と記入し、リスト下端までコピー貼り付けて完成。 #参考 必要に応じて、F列を列選択、コピー、その場で形式を選んで貼り付けの値にマークしてOKし、値化します。

a1213ya
質問者

お礼

ありがとうございます! 結局は他に回答くださった方のやり方でやったのですが、keithinさんの方法も目からうろこで大感謝です。 簡単な関数なのに、すごいですね^^ 私も簡単な関数で、自分のやりたい方向にもっていけるようになりたいです。

関連するQ&A