• ベストアンサー

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
質問者

お礼

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

関連するQ&A

  • エクセルでA列B列C列の重複するレコードのみを表示

    エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。 それぞれの列内には重複レコードがあります。 この条件の中で 「A列とB列とC列に重複するデータすべて」 を抽出したいのですが、どんな方法がありますか。 抽出されたデータで重複レコードの場合は1件のみで表示したいです。 よろしくお願いします。 例   A   B   C   抽出  1-001-002--002--002 2-002-002--005--007 3-003-007--007--008 4-007-008--008--011 5-008-008--010 6-008-010--011 7-011-011--012 8-013-014--013

  • エクセル 行にある項目を抽出

    間違えて他のカテゴリーで質問してしまいました。 そちらは閉めましたので改めてこちらで質問させてください。 エクセルで下記のような表から項目を抽出したいのですが うまくいきません A列 りんご みかん りんご ぶどう みかん と入力されていて任意のセルに、A列に入力されている項目から 重複分を除き抽出したいです 具体的には任意セルに「りんご、みかん、ぶどう」と抽出したいのです。 フィルタオプションを利用し、抽出することはできました。 また、それをマクロ登録すれば、A列に追加項目があっても 自動変更できるという、回答も頂き、確かにできたのですが、 このエクセルから、ハイパーリンクでワードへ飛ばしたり、 いろいろと込み入っているため、できれば、 マクロではなく、関数利用をしたいのですが、 どのような関数を利用すればよいのかわかりません。 ご存知でしたら、ご教示お願いいたします。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • Excel 2列をを1列へ

    Excelで2列にデータが入っているものを1列にまとめる方法をご教授いただきたいです。 また、1列にまとめた後に重複するデータをまとめたいです。 添付画像がやりたいことのイメージになります。 ただし、純粋なExcelではなく、Excelをベースにした別のツールをつかっているため、使用できる関数に制限があります。 ネットで検索するとROW()関数を使用するものが多かったのですが、ROW()関数は使用できません。 使用不可能な関数:ROW()、LEFTB()、RIGHTB()、MIDB()・・・ 使用可能な関数:VLOOKUP()、MATCH()、OFFSET()・・・ 作業列を使用する方法でも構いません。 ご回答よろしくお願いいたします。

  • エクセルで項目を抽出したい

    皆様のお知恵をお貸しください。 日々作業者が行っている日報の項目を一覧表より抽出したいのです。 シート1には受付日(A列) 品番(B列) 数量(C列) 納期(D列)・・・ などが記入されています。日々増えていき月あたり100件程度です シート2には作業者の日報に書かれている品番(A列)、作業時間(B列)、作業者名(C列)作業日時(D列)を手入力していきます。 月当たり1000ほどの入力になります。 複数の作業者が同じ仕事をすること、日をまたぐこともあり重複しています。 求めたいことはシート3のA列にシート2で書かれた品名をシート1の品名の中から抽出し自動で書き出したいのです。 今はピボットを使いシート2のデータを表にして、そこの項目をLOOKUP関数を用いて導きだしていますが、その都度ピボットを更新させないといけないので煩わしいと思い、できれば関数で抽出をしたいのです。欲を言えば品番の若い順に自動で抽出できればいいのですが、まずはシート2に書かれた順でもかまいません。 記入例 シート1には A列    B列    C列    D列 10/1   10001    30    10/12 10/2   10002    1     10/5 10/2 10003 3 11/5 ・       ・        ・ シート2には  A列    B列     C列    D列 10001    2.5     ○○   10/2  9058    4      ○○   10/2 10003 1 ○○   10/3 10001 1 ××   10/3  10003 6 ××   10/3 10002 2 △△   10/5 シート3には(希望としては)  A列     9058 10001 10002 10003 . . . よろしくお願いします。     

  • エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させた

    エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列に約1,000行くらいのデータが有ります。 このA列内で重複レコードがあります。 B列に約1,000行くらいのデータが有ります。 B列内でも重複レコードが有ります。 この条件の中で (1)A列にもB列にあるデータすべて (2)A列にしかないデータすべて (3)B列にしかないデータすべて を抽出したいのですが、どんな方法がありますか? それで (1)をC列 (2)をD列 (3)をE列 に並べて表示させたいです。 さらに抽出されたデータで重複レコードの場合は1件のみで表示したいです。 複数の操作を繰り返すのではなく C,D,E列に式を入れるだけで済ませる事は可能でしょうか? よろしくお願いします。 例    A   B    C   D   E 1-001-002--001--004--007 2-002-002--002--006--008 3-001-001--005--010 4-005-007 5-001-005 6-004-005 7-004-008 8-010-007 9-006-007 A列には001が3個、002が1個、005が1個有ります。 B列には001が1個、002が2個、005が2個有ります。 A列にもB列にも有るのは、001と002と005ですから これがC列に表示されます。 でそれぞれA列にもB列にも複数有りますが、1個として判定なので よって、C列には 001 001 001 001 002 002 005 005 と表示ではなく 001 002 005 と表示したい。 次にD列はA列に有る物だけですから 004 006 010 となります。B列には004は2個有りますが同じ値なので 004 004 006 010 では無く004は1個の表示です。 E列はB列のみのデータなので 007 008 です。 同じくB列には007が3個有りますが1個ともなします。 007 007 007 008 では無く 007 008 です。

  • エクセルマクロで重複数値と以外の数値を抽出する

    数値の表を作成しておりますが、 重複数値で困っております。マクロで教えてください。 A列11~20まで1.2.2.4.5.6.6.8.9.10とあるデータに 2と6が重複しています 重複数値2.6をB列2行目以降に、C列2行目以降にはそれ以外の1.4.5.8.9.10 を抽出したいのですが、マクロで教えてください。 (offsetを使ってできますか?) また、重複数値を抽出する自作関数ってできるでしょうか? よろしくお願いいたします。

  • エクセル2003 重複データの抽出

    エクセル2003を使っています。 重複したデータの抽出を行いたいのですが、 例えば、  A      B     C      D コード  書籍名  出版社名  著者 といった感じのデータが1万件ほどあります。 このうち、B列の「書籍名」が重複しているデータを抽出したい です。(抽出したものは、書籍名だけではなくて、ほかの出版社や著者の指定したデータも表示させたい。) VLOOKUPなどを使えばできないこともないのですが、一万件の 処理を行う上に、パソコンも非力なので時間がかかってしまい 困っています。 どうぞよろしくお願いします。

  • エクセル教えてください 重複データの削除方法

    エクセルは良く使っていますが、レベルは初級の上です。 同一セル内に複数の重複データが入っていますが、重複しないものを抽出し 新しいセルに入れたいと思っています。 重複データの区切りは、セミコロン";" パイプ区切り"|",空白、改行が混在しています。 重複しないものを、新しいセルに入れたいのですが、どのようにしたら良いでしょうか? 新しいセルでのデータ区切りは、コンマ(又はパイプ区切り)にしたいと思っています。   例で説明します。 A列(番号) B列(元のデータ)             C列(重複を除いたデータ)  1      タイ ベトナム 中国|タイ|タイ         タイ,ベトナム,中国    2      インド ベトナム|インド タイ |インド 中国  インド,ベトナム,タイ,中国 ※B列のデータを重複を除いて、C列に入れたいと思っています ※2行のデータを例にしましたが、実際には2万くらいデータがあります ※マクロは全くわからないので、多少の手作業があっても関数レベルで やれると助かります。(いまから、マクロを勉強してもよいでしょうか??) 良い方法をアドバイスいただければ助かります。

  • エクセルの関数で自動採番する方法を教えてください

    【エクセルのデータ例】 A B C 1 1 あああ 2 2 いいい 1 3 あああ 3 4 ううう 4 5 えええ 4 6 えええ 5 7 おおお 上記のようにデータが入っていた時、A列に「重複しているものには同じ番号を自動で入力する」という関数を入れたいのですがどのようにすればよいでしょうか? マクロの場合はほとんど知識が無いので、詳しく教えていただきたいです。 よろしくお願いします。

専門家に質問してみよう