• ベストアンサー

文字からリストとの完全一致部分を抽出したい

テキストからリストと合致する一文を抽出したいです 例文:セルB1 「私は東京都千代田区1-1に住んでいます」 リスト:セルA1 東京都千代田区     セルA2 神奈川県横浜市     セルA3 埼玉県秩父市     (以下続く) 結果:セルC1 東京都千代田区 例が分かりづらくて申し訳ありません・・・。 とにかくリストと完全一致する部分だけを抜き出したいんです! なにか適当な関数はないものでしょうか?

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>コピーペーストして試してみましたが、なぜか何を入力しても同じ結果しか表示されませんでした。 私の提示した数式は、A1セルからA100セルの範囲内の文字列がB1セルに含まれる場合は、そのA列の文字列を、含まれない場合はA1001セルの値、すなわちデータがない場合は空白セルを返す数式にしてあります。 したがって、1001行目のデータが表示されるなら、B1セルの文字列の中にA列1000行目までのデータが含まれていないパターンになっています。 もしA列のデータがA1000セル以降にもあるなら、1000の数字を2000などにして(2001行目は空白)、また検索範囲の100の数字をデータ数+アルファの数字(たとえばA列のデータが2000行以内なら2000)に変更してください。 ただし後者のデータ範囲は必要以上に大きい範囲を指定すると再計算に時間がかかりシートの動きが重くなりますので注意してください。

pesca_maru
質問者

お礼

アドバイス通りに式を変更してみたら、見事できました! これで仕事の効率が劇的に変化するので大変うれしいです。 私のような初心者にもとてもわかりやすく説明してくださって、頭の良い方なのだなぁと感心しきりです。本当にありがとうございました!

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

C1セルに以下の式を入力すれば、A列の文字列を抽出することができます。 =INDEX(A:A,MIN(INDEX(ISERROR(FIND($A$1:$A$100,B1))*1000+ROW($A$1:$A$100),)))&""

pesca_maru
質問者

お礼

早速のご回答ありがとうございます。 コピーペーストして試してみましたが、なぜか何を入力しても同じ結果しか表示されませんでした。 *1000という部分のため?リストで言えばA1001が必ず抽出されます(数値を変えても法則に変化はありませんでした)。

関連するQ&A

  • 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 ・ ・

  • エクセルでリスト選択を階層化する方法

    エクセルで、顧客管理シートを作っています。 Aセル  Bセル  Cセル 東京都 -千代田区-大手町          -永田町     -中央区 -日本橋 神奈川県-川崎市 -麻生区          -高津区 このように、 Aセルに東京都と入力されたら、Bセルで入力 できるのは千代田区か中央区とし、 Bセルで千代田区と入力したらCセルに入力 できるのは大手町か永田町としたいのです。 (選択リストはシートに記述されているもの とします) データの入力を手入力ではなく、リストから 選択する方法はわかったのですが、 このように階層構造になっているリストを実現 する方法がわかりません。 VLOOKUP関数とか使えばよいのかなとおもった のですが、わかりませんでした。 どのようにすればよいのでしょうか? よろしくおねがいたします。

  • エクセルでリストから選択する

    リストから選択のやり方はわかるのですが たとえばA1のセルで47都道府県のリストから東京都を選択すると B1のセルでは23区のリストが出てきて選択できるようにするには どうしたらよろしいでしょうか? 意味通じますか? A1で神奈川県を選択すると B1は23区ではなく横浜市や川崎市から選択できるようになるやり方です。 ご回答よろしくお願い致します。

  • エクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードの

    エクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードのID番号を返す、という関数式を知りたいです。 A列     東京都春日部区    神奈川県松戸町 千葉県霞ヶ関 埼玉県錦糸町 東京都千代田区 千葉県小松菜 キーワード郡 東京 1 千葉 2 埼玉 3 神奈川 4 ↓↓↓結果↓↓↓ A列     東京都春日部区     1   神奈川県松戸町     4 千葉県霞ヶ関      2 埼玉県錦糸町      3 東京都千代田区     1 千葉県小松菜      2 といった具合です。 お分かりになる方いらっしゃいますでしょうか?

  • 別テーブルにあるデータを部分一致で選択するためにはどうしたらよいでしょ

    別テーブルにあるデータを部分一致で選択するためにはどうしたらよいでしょう。 申し訳ありません基本的なSQLを教えてください。 テーブルAに住所、テーブルBに市区町村名と市区町村コードがあり、テーブルAに当該市区町村コードを付けたしたいのですが、どうやってテーブルAとBをマッチさせればよいのでしょうか 具体的に言えば テーブルA内の住所カラムが以下のようなものを含んだデータだとします。 神奈川県横浜市中区XX-XX 東京都港区赤坂XXX ・ ・ ・ テーブルBには市区町村名カラムと市区町村コードカラムがあります。 中央区,0011 港区,0012 ・ ・ 横浜市中区,0033 横浜市南区,0034 ・ ・ (一応注釈ですがCSVのイメージだと思ってください) この2つのテーブルから合致したものに対し 神奈川県横浜市中区XX-XX,0033 東京都港区赤坂XXX,0012 という形で抽出したいのですがどのようにしたら良いのでしょうか (東京の”中央区”など重複する可能性のあるものはデータ側で対応しますので重複しないと考えて結構です) よろしくお願いいたします。

  • リストと一致する値のセルを塗りつぶしたい。

    例えば A列に 東京都 神奈川県 埼玉県 千葉県 愛知県 大阪府 福岡県 という値が入力されているとします。 次にC列に 東京都 新潟県 大阪府 三重県 広島県 福岡県 という値が入力されているとします。 A列に入力されていて、かつC列にも入力されている値を自動的に赤く塗りたいとき、 どのような操作をすればいいのでしょうか。 この場合ですと東京都と大阪府と福岡県のセルが赤くなります。 条件附き書式と数式を組み合わせると良い気がしますが、 具体的には分かりません。

  • 住所の一部が合致する場合を抜き出して番号をつけたいのですが、 可能でしょうか。

    エクセルで、 住所の一部が合致する場合を抜き出して番号をつけたいのですが、 可能でしょうか。 具体的には、 住所リスト: 東京都港区台場~ 東京都葛飾区立石~ 東京都荒川区荒川~ 神奈川県横浜市西区~ 埼玉県さいたま市~ 上記に対し、 東京都港区=3番 東京都荒川区=4番 埼玉県さいたま市=5番 と一部が合致する値に番号をつけたいのです。 Vlockupでうまくいかないのですが、 教えていただけないでしょうか。 とても困っています。 何卒、よろしくお願いいたします。

  • 以下は上京というと思いますか?

    以下は上京と言うと思いますか? 1、 福岡県     → 埼玉県さいたま市に引越し 2、 宮城県     → 東京都あきる野市に引越し 3、 和歌山県    → 小笠原諸島(東京都)に引越し 4、 神奈川県川崎市 → 東京都大田区に引越し (引っ越したのは100m先) 5、 埼玉県秩父市   → 東京都西東京市に引越し

  • 上京とは?

    上京は、地方から東京に出て来る事だと思いますが、以下の場合は 上京と言うのでしょうか? 出てくる前 出てきた場所 1、 福岡県 埼玉県さいたま市 2、 宮城県 東京都あきる野市 3、 和歌山県 小笠原諸島(東京都) 4、 神奈川県川崎市 東京都大田区 (引っ越したのは100m先) 5、 埼玉県秩父市 東京都西東京市

  • EXCEL2007で2列の入力内容を集計するには?

    EXCEL2007で、次のような集計をどうするかわからず、困っています。 たとえば、各入力行に、 ----- 東京都  杉並区 東京都  千代田区 神奈川県 瀬谷区 神奈川県 横浜市 東京都  千代田区 東京都  武蔵野市 東京都  杉並区 神奈川県 横浜市 東京都  千代田区 ----- ...のように、2列にそれぞれ文字列が入っているデータにおいて、2列の語句の組み合わせで一番多いものをカウントアップし、多いもの順に表示させたいのです。 上の例でいえば、 東京都  千代田区 3 東京都  杉並区 2 神奈川県 横浜市 2 東京都  武蔵野市 1 神奈川県 瀬谷区 1 のようにカウントしたものを作りたいのです。 2つの語句を結合してしまってからピボットテーブルを使えばできそう、とまではわかってきたのですが、できれば2列に分かれたまま集計したいです。 お知恵をお貸しください。

専門家に質問してみよう