• ベストアンサー

B列とC列の両方に存在する単語を抽出したい

WasaBeamの回答

  • WasaBeam
  • ベストアンサー率33% (1/3)
回答No.4

VBAを使った方法です(Excel2010で検証) B列の単語ごとにC列で検索を行い、一致するものがあれば A列の情報をD列に、B列の情報をE列にセットしています。 Option Explicit Sub SampleProcedure() Dim oRows1 As Range Dim oRows2 As Range Dim bFind As Boolean Dim iRow As Integer iRow = 1 For Each oRows1 In ActiveSheet.Columns(2).Rows If oRows1.Text = "" Then Exit For bFind = False For Each oRows2 In ActiveSheet.Columns(3).Rows If oRows1.Text = oRows2.Text Then bFind = True Exit For ElseIf oRows2.Text = "" Then Exit For End If Next If bFind Then With ActiveSheet.Rows(iRow) .Columns(4).Value = oRows1.Columns(0).Text .Columns(5).Value = oRows1.Text End With iRow = iRow + 1 End If Next End Sub

junpei12
質問者

お礼

ご回答いただき、ありがとうございます。 せっかくご回答いただいたのに申し訳ありませんが、 つい先ほど、ベストアンサーを選んでしまいました。 同じことを実現するために、いくつもの方法があることが分かり、勉強になりました。どうもありがとうございました。

関連するQ&A

  • A列にあってB列にはない単語をC列に残したいです。

    エクセルで、「A列とB列にそれぞれ単語がたくさん入力されています。A列にはあるが、B列にはない単語を抽出して、C列に残す」ということをやりたいのですが、どなたか関数を教えていただけないでしょうか? すみませんが、エクセルの関数を教えていただけないでしょうか。 単語のリストが2つあります。 A列に、片方のリストを入れ、B列にもう片方のリストを入力してあります。 ■やりたいこと 1: 2つのリストには重複している単語があるため、重複している単語は削除して、A列だけに存在する単語をC列に入れたいと思っています。 ■やりたいこと 2: 最終的には、C列には、空のセルを作らず、上のほうの行に詰めた形に整えたいと思っております。 以上の2つについて、どちらかだけでもやり方を教えていただければ、大変助かります。 どうぞよろしくお願いします。

  • エクセルの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 です。

  • エクセルでB列とC列で重複する語の頻度数合計

    エクセルの処理の質問です。 2つの単語リストがあり、下記のように、B列とC列に入力してあります。 A列は、B列の単語リストの頻度です。 ------------------ A列 B列 C列 D列 4 and and 3 be the 5 stay type 4 the zoo ------------------ やりたいことは、 上記、B列とC列で重複している単語を見つけて その重複語の頻度数(A列)を合計して、D1のセルに入力したいと思っています。 上記の例の場合、D1には 8 が入ることになります。 このようなことは可能でしょうか。 やり方をご存知の方、教えていただけると大変たすかります。 よろしくお願いします。

  • 番号が一致したら別の列の値を抽出したい

    こんばんわ。 Excelについて教えてください。 A列に数字が1~10と並んでおり、 C列には数字が穴あきで5つ(1,2,4,6,8)あったとし、 A列とC列を比較して比較し、数字が重複した場合は、 D列にある値をB列に抽出したいのですが、行番号を指定して 抽出する事なんてできますでしょうか? ↓こんな事をしたいです。 A列 B列 C列 D列 1  A  1  A 2  B  2  B 3     4  C 4  C  6  D 5     8  E 6  D 7 8  E 9 10

  • エクセルで 任意の単語を重複なしで抽出したい

    エクセルに入力した単語の行 ※(例えば G行2列から G行101列までの100個) の中から 5つの単語をランダムに出力したい  ※(例えば A2 B2 C2 D2 E2 へ) ・ここで おなじ列の中では 単語の重複を避けたい ・出力は A2 B2 C2 D2 E2  、 A3 B3 C3 D3 E3、、、、、、、、、、  と、任意の量にふやしたい エクセルにまだ詳しくないので、少し優しめに解答もらえると嬉しいです よろしくお願いします    

  • Excelで、A列に「ある特定のキーワード」が入っていたら、それをB列に抽出したい

    タイトルの通りなのですが、具体的な例を以下に記載します。 A列には、3行~5行からなるアンケートに対する回答がテキストとして存在している。 このテキストの中に「ありがとう」という文字列が存在した場合、B列に「1」と入力されるようにしたい。 やりたいこととしては、単純にこれだけです。 で、ここからさらに「複数のキーワードを抽出したい」というのが今回の質問です。 A列に以下のテキストデータがあるとします。 ---------------------------------------------------------- いつも親切にしてくれてありがとう。 近いうちに、私からあたなに対してお礼をしたいと思います。 よかったら食事にでも行きましょう。 ---------------------------------------------------------- この中から「ありがとう」「親切」「お礼」「食事」というキーワードを 拾い、B列、C列、D列、E列にそれぞれ「1」と反映されるようにしたい。 イメージ画像を添付したので、そちらを見ていただければと思います。 イメージ画像はすべて手動で入力した結果ですが、これを自動で行いたいと思っています。 画像でいうと、C列にテキストデータをペーストしたら、自動的にD、E、F、G列に「1」という数字が入るようにしたいです。 エクセル2003を使っています。 どうか、よいアドバイスをいただければと思います。

  • 巨大なCSVの加工(指定列のみの抽出)について

    巨大なCSVの加工(指定列のみの抽出)について 下記のような構成のCSVファイルがあります。 "ID","a","b","c","d","e","f","g","h","i","j","k","l","m" "0001","a","b","c","d","e","f","g","h","i","j","k","l","m" "0003","a","b","c","d","e","f","g","h","i","j","k","l","m" "0004","a","b","c","d","e","f","g","h","i","j","k","l","m" ・ ・ ・ 例えば、 ここから"ID"列と"c"列と"f"列のみ抽出して新たなCSVファイルで保存。 という処理を行いたいのですが、行数が5000万行近くあり、ファイルサイズが80GB程あるので エクセルはおろかアクセスでも開くことができません。 テキストエディタの秀丸64bit版なら開くことができますが、指定列の抽出方法が分かりません。 秀丸のマクロでもVBSでも良く、また膨大な待ち時間がかかっても構わないので実現する方法について お知恵をお貸しください。

  • エクセルでA列-B列=C列 の抽出方法について

    エクセルの初歩的な質問になってしまうかもしれませんが A列の値からB列の値で重複する値を削除して C列を作る方法を教えてください。 A列 a b c d B列 c d から 結果 C列 a b のような結果が得られる処理方法を お願い致します。

  • エクセルでA列、B列、C列、D列、E列に数値が入力されており、それぞれ

    エクセルでA列、B列、C列、D列、E列に数値が入力されており、それぞれの数値が重複しないように合計数値を計算したいのですが、何か良い方法は無いでしょうか? 例 A B C D E 1 5 12 6 13 13 2 7 13 7 14 14 3 16 8 20 5+12+6+13+13=49 5+12+7+13+13=50 よろしくお願いします

  • 列中に共通にあるデータを抽出したい

    エクセルでA列、B列、C列と別々の文字情報が入っているデータがあります(製品のコードNo),列は条件で分類しています(例,列A: 水をかけて変質したもの、列B: 燃えたもの, など.数値の数は列ごとに異なります). 列Aと列Bの両方で出てきたもの列Aと列Cで出てきたけれど列Bにはないもの、というような抽出を行なうにはどうしたらよいのでしょうか.うまく検索式を組む事が出来ません.よろしくお願い致します.