• ベストアンサー

Excelを使用していますが、二つの列の項目を一つにまとめる簡単な方法

Excelを使用していますが、二つの列の項目を一つにまとめる簡単な方法はありますか? 添付画像のような感じで、A列とB列の項目をC列にまとめたいです。実際のデータは1000件近くあります。重複している項目は1つのみ抽出し、マクロや関数で処理できればうれしいのですが。 宜しくお願い致します。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

マクロならこんな感じです Sub test() Dim x, y, z For x = 1 To 2 For y = 1 To Cells(Rows.Count, x).End(xlUp).Row For z = 1 To Cells(Rows.Count, 3).End(xlUp).Row If Cells(y, x).Value = Cells(z, 3).Value Then Exit For Next z If z > Cells(Rows.Count, 3).End(xlUp).Row Then Cells(z, 3).Value = Cells(y, x).Value Next y Next x If Cells(1, 3).Value = "" Then Cells(1, 3).Delete End Sub 参考まで

akiyakou
質問者

お礼

ありがとうございました。参考にさせていただきます。 マクロの内容は難しくてわからなかったのですが、うまく動きました。

その他の回答 (3)

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

A列およびB列にダブりがあれば一つのデータを抽出して表示することができます。作業列としてC列を答えの表示をD列にするとします。 C1セルには適当な項目名をC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A$2:B$500,"?*")+COUNT(A$2:B$500)<ROW(A1),"",IF(COUNTIF(C$1:C1,INDEX(A:B,ROUNDUP(ROW(A1)/2,0)+1,MOD(ROW(A1)-1,2)+1))=0,INDEX(A:B,ROUNDUP(ROW(A1)/2,0)+1,MOD(ROW(A1)-1,2)+1),"")) D1セルには次の式を入力し、Ctrl+Shif+Enterキーで確定します。 その後に下方にオートフィルドラッグします。 =IF((COUNT(C$1:C$500)+COUNTIF(C$1:C$500,"?*"))<ROW(A1),"",INDEX($C$1:$C$500,SMALL(IF($C$1:$C$500<>"",ROW($A$1:$A$500)),ROW(A1))))

akiyakou
質問者

お礼

ありがとうございました。参考にさせていただきます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 参考になるかどうか判りませんが・・・ 質問では数値になっていますが、文字列でも対応出来るようにしてみました。 尚、A列の中には重複はないものとしています。 ↓の画像のように作業用の列を使っています。 作業列C2セルに =IF(OR(B2="",COUNTIF($A$2:$A$1000,B2)),"",ROW(A1)) としてオートフィルで下へずぃ~~~!っとコピーします。 結果のE2セルに =IF(COUNTA($A$2:$A$1000)>=ROW(A1),A2,IF(COUNTA($A$2:$A$1000)+COUNT($C$2:$C$1000)>=ROW(A1),INDEX($B$2:$B$1000,SMALL($C$2:$C$1000,ROW(A1)-COUNTA($A$2:$A$1000))),"")) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 もし、A列に重複があれば他の方法を考えないといけません。 以上、参考になれば良いのですが 他に良い寳保があれば読み流してくださいね。m(__)m

akiyakou
質問者

お礼

ありがとうございました。参考にさせていただきます。

  • osahune
  • ベストアンサー率47% (288/609)
回答No.1

A・Bそれぞれの値を特定の条件によりCに抽出したいなら、関数(IF式)で出来そうですが、ご質問の内容ではどのように「まとめる」のかが分かりかねます。

akiyakou
質問者

お礼

わかりやすい説明ができるように努めます。 ありがとうございました。