ここから本文です

Excelについて教えてください。

ayu********さん

2015/11/2617:52:52

Excelについて教えてください。

1000単位のリストの中から、あるキーワード(これも100単位で存在します)にヒットするものだけを抽出できるシステムをExcelで作成したいと考えております。キーワードが1つなのであれば検索からキーワードを入れるとヒットすると思いますが、今回はキーワードも多く、1つ1つ検索していると途方に暮れそうなので、一発で全て検索できる方法があれば教えていただきたいです。

ちなみにExcel2010を使用しております。

どうぞよろしくお願いいたします。

補足皆様ご丁寧にありがとうございます。こんなにアドバイスを頂けて嬉しいです。
頂いた内容で試させて頂きます。またここに補足する形で投稿します。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
67
回答数:
4
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

mar********さん

リクエストマッチ

2015/11/2707:35:49

◆このような質問は、サンプルを作るのがじゃまくさいんですね
◆ask00eeさんの表をお借りしまして、

◆こんな方法はいかがでしょう
B1=COUNT(INDEX(FIND(E$1:E$5,A1),))
★下にコピー

◆このような質問は、サンプルを作るのがじゃまくさいんですね
◆ask00eeさんの表をお借りしまして、...

  • mar********さん

    2015/11/2707:51:47

    【式-1】
    B1=COUNT(INDEX(FIND(E$1:E$5,A1),))
    ★下にコピー

    【式-2】
    C1=SUMPRODUCT((LEN(A1)-LEN(SUBSTITUTE(A1,E$1:E$5,)))/LEN(E$1:E$5))
    ★下にコピー

    ◆【式-1】と【式-2】の違いは、赤四角の箇所をみてください

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

mit********さん

2015/11/2708:02:43

シート1が元の表としてA列からE列までの表で1行目は項目名で2行目以降にデータがあるとします。
A列にキーワードがあるとして選択抽出したいキーワードをシート2のA1セルから横方向にいくつ入力してもよいでしょう。
そこで作業列を使って対応します。
シート1のF2セルには次の式を入力して下方にドラッグコピーします。

=IF(COUNTA(Sheet2!$A$1:$X$1)=0,"",IF(COUNTIF(Sheet2!A$1:X$1,A2),MATCH(A2,Sheet2!A$1:X$1,0)*100+COUNTIF(A$2:A2,A2),""))

その後にシート2ではA1セルから横方向に抽出したいキーワードを入力します。
A2セルからE2セルまでにはシート1の項目名を入力します。
A3セルには次の式をE3セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(ROW(A1)>COUNT(Sheet1!$F:$F),"",INDEX(Sheet1!$A:$E,MATCH(SMALL(Sheet1!$F:$F,ROW(A1)),Sheet1!$F:$F,0),COLUMN(A1)))

ぜひお試しください。

ask********さん

2015/11/2707:25:56

複数のキーワードの部分一致で、リストデータを絞り込むには、次のようにします。

添付図のA1:A10には、アルファベットをランダムに繋げた文字列があります。

E1:E5には、キーワードを入力しました。

SI
RE
ZM
UL
CH

F1:F5に、次の数式を入れます。

="*"&E1&"*"

E列の文字列の両脇に"*"が付きます。

B1セルに次式を入力します。

=SUMPRODUCT(COUNTIF(A1,$F$1:$F$5))

この式を、B10までコピペします。

F1:F5に入力したキーワードのいずれかが含まれていた場合、その数が返ります。

どのキーワードも含まれていない場合は0が返ります。

A1[KWAHCB]B1[0]
どのキーワードも含まないので戻り値は0です。

A2[SULKXS]B2[1]
ULを含むので、戻り値は1です。

A3[GORESI]B3[2]
REとSIを含むので、戻り値は2です。

[SI][RE][ZM][UL][CH]
----------------------------------------
データリスト1000件
キーワード500種類
B1:B1000

=SUMPRODUCT(COUNTIF(A1,$F$1:$F$500))
-----------------------------
この程度の量でしたら、上記関数を使用しても、計算に時間がかかるようなことはありません。

※時間がかかるのだとしたら、(既に入っている関数や条件付き書式)の影響だと思います。

ただし、関数を入れたままだと重くなりますので、関数入力後は、形式を選択して貼り付けで【値】にした方がいいと思います。

複数のキーワードの部分一致で、リストデータを絞り込むには、次のようにします。...

web********さん

2015/11/2621:52:32

キーワードがリストと完全一致するのなら。
フィルターオプションでキーワードを配列で条件指定することで可能かと思います
参考サイト
http://officetanaka.net/excel/vba/tips/tips155.htm


キーワードが~を含むの場合はVBAで、検索を繰り返し処理するしかないでしょう

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる