• 締切済み
  • 困ってます

Excel 部分一致データの抽出

A列    B列                 C列 1会社名   商品内容、代表者名、会社名     〇 2会社名   商品内容、 3会社名   代表者名、会社名          〇          4会社名   会社名 5会社名   代表者名 参照をA1対しB1とし、会社名が重複しているB列をC列〇のように表記させたい。 このようにしたいと思っております。シンプルなのですがデータ数が10,000 あり苦戦しております。ぜひ方法を教えてください

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数280
  • ありがとう数2

みんなの回答

  • 回答No.2

 御質問文に挙げておられる例において、4行目は会社名が重複しているのにもかかわらず何故か〇が付いていないのですが、これはただの間違いで、本来であればC4セルも〇が表示されるべきだと考えれば宜しいのでしょうか?  色々なやり方がありますが、以下の関数の内の何れかをC1セルに入力してから、C1セルをコピーして、C2以下に貼り付けますと、御希望の結果が得られます。 =IF(AND($A1<>"",ISNUMBER(FIND($A1,$B1))),"〇","") =IF(AND($A1<>"",ISNUMBER(SEARCH($A1,$B1))),"〇","") =IF(AND($A1<>"",COUNTIF($B1,"*"&$A1&"*")),"〇","") =IF(OR($A1="",ISERROR(FIND($A1,$B1))),"","〇") =IF(OR($A1="",ISERROR(SEARCH($A1,$B1))),"","〇") =IF(OR($A1="",ISERR(FIND($A1,$B1))),"","〇") =IF(OR($A1="",ISERR(SEARCH($A1,$B1))),"","〇") =IF(OR($A1="",FIND($A1,$B1&$A1)>LEN($B1)),"","〇")  尚、上記の関数の中で「=IF(AND(」で始まる関数の「AND($A1<>"",」の部分を外して =IF(ISNUMBER(FIND($A1,$B1)),"〇","") としてしまったり、「=IF(OR(」で始まる関数の「OR($A1="",」の部分を外して =IF(FIND($A1,$B1&$A1)>LEN($B1),"","〇") としてしまいますと、もし「A列のセルが空欄となっていてB列のセルが空欄ではないという場合」においても〇が付いてしまうというバグが発生してしまいますので、「AND($A1<>"",」の部分や「OR($A1="",」の部分を省略してしまう事は避けておいた方が良いと思います。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

  • エクセルのデータから一致するデータを出したい

    エクセルの表から一致するデータに対応する指定列のデータを表示させたいのですがどの関数で設定すればよいのか教えて下さい。 A2からDの30までの表(実際には4000列以上) 1行は見出し A列は1~のナンバリング B列は商品コード(同じコードが複数ある)    ・昇順に並べてある C列は日付け    ・2番目に優先で昇順に D列は文字列 探したい商品コードをB1入力、それに対応するD列の文字列の昇順のトップをD1に表示させたい この内容で伝わるでしょうか オートフィルターで選ぶのも考えたのですが、入力した時その列のある列のデータが瞬時に見たいのです。 よろしくお願いします。

  • EXCELで別シートから値の一致しないデータを抽出する方法

    Sheet1のA列に A1 123 A2 456 A3 789 のデータが入力されており、Sheet2のB列に B1 666 B2 123 B3 888 B4 999 B5 456 B6 888 のデータが入力されている場合に、 下の表のように、Sheet1のA4以降のセルにSheet2のB列から ・Sheet1のA1~A3に一致しないデータ ・Sheet2のB列で重複しないデータ ・降順 の3点の条件で抽出する方法を関数で教えてください。 よろしくお願いします。 Sheet1 A1 123 A2 456 A3 789 A4 999 <-ここからSheer2のデータでA1~A3以外の値でSheet2の重複をさけて降順で表示させたい A5 888 A6 666

  • 回答No.1
  • bunjii
  • ベストアンサー率43% (3558/8174)

>参照をA1対しB1とし、会社名が重複しているB列をC列〇のように表記させたい。 C1セルに次の数式を設定して、C1セルを下へ必要数コピーしてください。 =IF(FIND(A1,B1&A1)>LEN(B1),"","○") 貼り付け先のC2からC10000までを簡単に選択するには現在のセル番地を表示している位置へC2:C10000と入力してEnterキーを打鍵すると一発で選択されます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

大変ありがとうございました。とても助かりました。出張のため御礼が遅れましたことお詫び申し上げます

関連するQ&A

  • 特定のデータ抽出

    お世話になります。次の機能を実現するエクセルのマクロについて、質問させていただきます。 1)毎日、30件のデータが取得され、A列に追加保存されます。 2)その日取得された30件のデータの中から、A列にある過去のデータを参照し、重複したものは削除する 3)重複削除後のその日のデータをC列に表示させる。 *表示させたいのは、その日のデータです。 単独で、重複データを削除させるマクロは作成できたのですが、過去のデータを参照し、それを処理させる 方法がわかりません。よろしくお願いします。

  • エクセルでのデータ抽出について

    こんにちは!関数初心者です・・・。 どうしてもできなくて教えていただきたいのですが、たくさんのデータの中から一致するデータを表示したいのです。 下記のようなデータがあったとき、検索する文字列を入れるセルをA1とします。検索結果をB1に表示したいのです。 たとえば品目にある「鉛筆」の商品ID「AA-001」を探したいとき、セルA1に「鉛筆」と入力したら、セルB1に「AA-001」と表示したいのですが、どうしてもうまくいきません。 商品ID 業者NO 科目 品目 単価 AA-001 スズキ100 文具 鉛筆 100 AA-002 スズキ200 文具 ノート 200 BB-001 タナカ100 食品 卵 100 BB-002 タナカ200 食品 チーズ 200 CC-001 サトウ100 衣類 シャツ 100 CC-002 サトウ200 衣類 スーツ 200 どなたかおわかりになりましたら教えてください!! よろしくお願いいたします!

  • 【エクセル】抽出データを上に詰めて表示させたい。

    重複するデータを上に詰めて表示さセル方法が解らないです。 B列はA列の元データから重複分は表示しないようにしています。 C列はA列の元データから重複分の数を数えています。 │A │B    │C│ D │ 1│あああ │あああ │3│ 2│いいい │いいい │2│ 3│あああ │     │ │ 4│ええ  │ ええ  │2│ 5│おおお │おおお │1│ 6│ええ  │   │ │ 7│いいい │  │ │ 8│あああ │  │ │ 9│うううう│うううう│1│ ・ ・ 上記のような表で、A列が元データで、 B列にはセルB1から、=IF(COUNTIF($A$1:A1,A1)>1,"",A1)という関数を オートフィルで下まで伸ばしています。 C列は、=IF(COUNTIF($A$1:A1,A1)>1,"",COUNTIF($A$1:$A$100,A1))と いう関数を使用しています。 そこで、B列C列の何も表示されていないセルを詰めて、上に詰めて 表示させたいです。マクロは良くわからないのでなるべく関数で お願いします。ちなみに、今使用している関数も、こうしたほうが いいというのがありましたら。訂正してもらえると助かります。 解りづらいところがありましたら、補足します。 宜しくお願いします。

  • Excel データを部分一致で抽出して表示したい (関数 または VBA)

    まずは下のサンプルデータを見ながら本文を読んでください。 Excelの関数(lookup か vlookup) か VBAを利用して、 Sheet2のセルA列にデータを自動的に表示したい と思っています。 Sheet2のセルA列に表示したいデータは、Sheet1のセルAの情報です。 例えば、Sheet2のセルB1が「静岡県」の場合は、「営業2部」という文字が Sheet2のセルA1に表示されるようにしたいと思っています。 つまり、Sheet1のセルB が Sheet2のセルB の内容と 部分一致した場合に、Sheet2のセルA列に 該当データ(Sheet1のセルA)を 抽出して表示するということをやりたいと考えています。 どうぞよろしくお願い致します。 サンプルデータ ◆Sheet1 参照元となる表 ___|___セルA___|________セルB ---------------------------- 1 | 営業1部 | 東京都千代田区 ---------------------------- 2 | 営業2部 | 静岡県 ---------------------------- 3 | 営業2部 | 山梨県 ---------------------------- 4 | 営業3部 | 東京都渋谷区 ---------------------------- 5 | 流通1部 | 神奈川県 ---------------------------- ◆Sheet2 データを埋めたい表 ___|____セルA_____|_______セルB ---------------------------- 1 |________________| 静岡県富士市大淵 24 ---------------------------- 2 |________________| 東京都千代田区丸の内1-8 ---------------------------- 3 |________________| 大阪府大阪市中央区南船場1―15 ---------------------------- 4 |________________| 神奈川県横浜市 ---------------------------- 5 |________________| ※以下 セルBには500件ほどの都道府県データあり。 6 7 ・ ・

  • Excel シート間のデータ抽出と置き換え

    AとBのシートを比較して、 Aと同じ単語のあるセルがBにもあった場合には、 該当単語のある行から、特定セルの内容を、 Bのシートの該当行(同単語のある行)の特定場所にコピーする。 説明がヘタですみません。 例を挙げますと、 <Aのシート> A1:あ B1:Goo A2:い B2:Yahoo A3:う B3:Google <Bのシート> A1:あ B1:データなし A2:か B2:データなし A3:さ B3:データなし この様な場合、 AシートA1のデータ"あ"は、BシートのA1にもありますので、 その場合には、B1データの"Goo"を BシートのB1にコピーし <Bのシート> A1:あ B1:Goo A2:か B2:データなし A3:さ B3:データなし と、なるようすることを関数だけで行うことは可能なのでしょうか。 自分なりに色々調べてみたのですが、該当例を探すことができませんでした。 ご存知の方がいらっしゃいましたらご教授ください。 補足説明といたしまして、 データは全て文字です。 B1のシート内で検索データが重複することはありません。 検索語(検索対象語)の文字列にスペース(半角・全角共)含まれていた場合 そのスペースは検索対象から除外(無視)して認識する。 検索語は複数あります。 できれば、一括で行いたいのですが、それですとVBAでないと無理でしょうか。 宜しくお願いいたします。 教えてGooさんの枠を超えた質問であれば申し訳ありません。

  • エクセルデータの完全削除

    エクセル2000において例えばA列に・・・ A B C D A と並んでいた場合、重複データを完全に削除 する方法はないでしょうか?つまり削除後は・・・ B C D のみが残る方法です。過去ログを参照 しましたが、重複データの片方を残す方法ばかりで 大変困っています。。

  • エクセルの質問です

    A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  B列が昇順で並んでいる C列とD列は重複しない という条件で <=vlookup(b1,c:d,2,false)> という回答を頂いたのですが、 B列が昇順で無い(ランダムに数字が入っています) D列には同じ会社名が何度も出てきます。 どうすればいいのかわかる方お願いします。

  • 条件に一致したデータの検索・抽出について

    エクセルで2つのデータから条件に一致したデータを検索・抽出がしたいのですが、うまく抽出することができないため、質問させていただきます データA |入荷日|商品番号|商品名|数量|金額| |1.1|1111|〇〇〇|10|10| |1.2|2222|◎◎◎|15|15| |1.3|3333|△△△|20|20| |1.4|4444|◆◆◆|10|10| データB |販売日|商品番号|商品名|販売数| |3.1|1111|〇〇〇|   | |3.2|    |AAA|100| |3.3|    |BBB|120| |3.1|2222|◎◎◎|   | |3.3|    |CCC|100| |3.1|3333|△△△|   | |3.1|4444|◆◆◆|   | データBから商品番号の一致したデータの一部を抽出してデータAに追加したいです (一部が難しいようなら1行そのまま抽出でも大丈夫です) 理想は |入荷日|商品番号|商品名|数量|金額|販売数| |1.1|1111|〇〇〇|10|10|   | |   |    |AAA|  |  |100| |   |    |BBB|  |  |120| |1.2|2222|◎◎◎|15|15|   | |   |    |CCC|  |  |100| |1.3|3333|△△△|20|20|   | |1.4|4444|◆◆◆|10|10|   | もしくは、関数を利用して以下の形にできれば、と思います |入荷日|商品番号|商品名|数量|金額|商品名|販売数|商品名|販売数| |1.1|1111|〇〇〇|10|10|AAA|100|BBB|120| |1.2|2222|◎◎◎|15|15|CCC|100|   |   | |1.3|3333|△△△|20|20|   |   |   |   | |1.4|4444|◆◆◆|10|10|   |   |   |   | データAをベースに、データBから重複データのうちすでにデータAにあるものを省き(1件目は重複データなので2件目以降)抽出する 1.データB商品番号重複しています。重複データの1件目はデータAと共通で、2件目以降を抽出したいです 2.データB商品番号の重複はそれぞれ違うため、1件も重複してないものもあれば3件ほど重複しているものもあります 3.データAは入荷日の範囲を指定したデータですが、データBは入荷日項目がないため抽出する必要のない内容・件数のデータもはいっています。その為、データAから抽出するのではなく、データAをベースにデータBから抽出がしたいです。 よろしくお願いします。

  • エクセルで縦列を横行にするには?

    エクセル2007を使っています。 縦:A1列に日付があり、B1列にデータがあります。 これをC1行にA1列の日付、C2行にB1列のデータというように 縦のものを横に変更したいのですが、それぞれを参照するようにする他に、 どのようにしたらいいのでしょうか?

  • エクセルデータ抽出方法を教えてください

    エクセルでのデーター抽出方法を教えてください、シート1:A1にUA1と入力し、シート2:A列にはUA1・・・・複数のデータが縦に並んでいます、シート1:A1に入力したデーターを元にシート2:A列を検索し該当するデータの抽出を行いたいです、VLOOKUPではうまく行きません教えてください