• 締切済み

Excel 複数セル内の文字列を検索する関数

シート1にはA列に会社名、B列に業種が入っています。シート2のC列にシート1のA列の会社名を含む文字列が入っています。ここで、C列にA列の会社名が含まれていた場合、シート2のD列に会社名に対応する業種を入力したいと考えています。データ数は100-200行ほどです。 関数で表現したいと考えているのですが、簡潔に表現する方法が思いつきません。ご協力お願いします。

みんなの回答

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.5

[No.4補足]へのコメント、 》 解決の糸口が見えてきました それは良かった、精々頑張って頂いて、スマートな解決法を見付けたら、是非教えてください。 ちなみに、貴方なら「11行目以降空白」問題の(原因は兎も角として、既に暗示済みの)解決策に気付くのは朝飯前と思っておりました。ま、此方も精々頑張ってくださいネ。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.4

何方かの受け売りですが、 添付図参照 Sheet2!D2: =IFERROR(VLOOKUP(IF(OR(ISNUMBER(FIND(Sheet1!A$2:A$10,C2))),INDEX(Sheet1!A$1:A$10,SUMPRODUCT(ISNUMBER(FIND(Sheet1!A$1:A$10,C2))*ROW(Sheet1!A$1:A$10)))),Sheet1!A$2:B$10,2,FALSE),"") 【お断り】上式は必ず配列数式として入力のこと

rotoiti
質問者

補足

データが100行以上あるので、検索値の範囲などを書き換えてからご教示いただいた関数を試してみたのですが、どうにも11行目以降が空白で表示されてしまいます。教えていただいた中のFind関数の部分だけでも試してみたのですが、Find関数内で11行目以降にエラー(#Value!)がでるようです。当方Libraofficeなのですが、Libra特有のエラーなのかもしれないとも疑っているですが、どうにも腑に落ちません。この件をもう少し調べてみたいので、別質問で質問させていただくことにいたします。ご教示いただいた関数自体は素晴らしくて、解決の糸口が見えてきました。ありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>データ数は100-200行ほどです。 模擬データを10例ほど提示してください。 >関数で表現したいと考えているのですが、簡潔に表現する方法が思いつきません。 組み込み関数には目的に叶うものが見当たりません。 検索文字列:"ABCDE" 検索対象:{"ABC","BCD","CDE"} 上記の条件では検索文字列の一部を切り落とすための条件が提示されていなければなりません。 検索文字列:"ABCDE" → LEFT("ABCDE",3) → "ABC" 上記のように検索文字列を加工する規則が無いと数式を組めません。 従って、該当する会社名を探せません。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

Libraofficeが手元にないのでネット検索したところ Sheet1!A:BはSheet1.A:Bみたいですね。 =VLOOKUP("*" & C1 & "*",Sheet1.A:B,2,0) ただ、"*" & C1 & "*"が有効かどうかは検証できないのでわかりません。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

=VLOOKUP("*" & C1 & "*",Sheet1!A:B,2,FALSE) でいかがですか。

rotoiti
質問者

補足

早速のご返答ありがとうございます。シート名の参照がうまくいかないようで、#Name?が出てしまいます。すごく初歩的で申し訳ないのですが、Sheet1!以外に参照方法はありますでしょうか?それと、当方Libraofficeを使っているのですが、MSと参照方法の記述に違いがあったりするのでしょうか?

関連するQ&A