• ベストアンサー

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

テキストからリストと合致する一文を抽出したいです 例文:セル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