- ベストアンサー
エクセル関数でB列の名前が複雑な場合にC列を抽出する方法は?
- エクセルの関数を使って、B列の名前が複雑な場合でもC列を抽出する方法を教えてください。
- 先ほど教えていただいた関数では、B列の名前が単純な場合に限定されていたため、複雑な名前の場合にも対応した方法を知りたいです。
- シート1のB列の名前が複雑な時でも、シート2のデータからC列を抽出する方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
恐らく実際には,たとえばシート3のA1からA5に「標準データ」として キウイ ばなな オレンジ いちご メロン を用意, 今回ご質問のシート1と2のB列にそれぞれ一列あけて(A列が番号,C列が「キウイA」なり「美味しいキウイ」にして) 例えば B1: =INDEX(Sheet3!$A$1:$A$5,MATCH(1,MMULT(ISNUMBER(FIND(Sheet3!$A$1:$A$5,C1))*1,{1}),0)) などのようにして該当する標準データを採取してくれば,あとは一番最初のご質問のカタチになっていますから最初の式で計算することができます。 #数式の類型で回答しているので,だいぶもってまわった計算式になっています。
その他の回答 (2)
- layy
- ベストアンサー率23% (292/1222)
例えば、「ばなな」は何と表示させたらいいのですか?。 VBAはできませんか?。
お礼
今回は、これ以上の関数は無理そうなので、あきらめます。ご回答ありがとうございました。
補足
お返事を頂き、ありがとうございます。 問題を見つけながら少しずつ、 関数を修正して考えていますので、VBAでは作成する予定がありません。 ばななA 又は ばななB 時の ★c列の表示ですが、 ********************************************************* <シート1>101のばななA、102のばななBの場合は下記のように表示を したい予定です。 *********************************************************** a列 b列 ★c列 101 ばななA 北海道 201 ばななB 沖縄県 このb列が単純に「ばなな」のみだったら、問題がなかったのですが、 セルによっては、ばななAのように、附属の文字があったため、一部は 抽出ができませんでした。 それで、今回こちらで問い合わせをさせて頂きました。 どうかよろしくお願いいたします。
- keithin
- ベストアンサー率66% (5278/7941)
一般にそういうことは不可能です。 例えば「"キ"ウイ」と「"キ"ュウリ」,あるいは「"いち"ご」と「"いち"じく」の区別が付かなくなるからです。 たとえばシート1のAB列それぞれ「左3文字」ずつ切り取れば一意に識別できる(一つ前のご質問の形に帰着できる),とかそういった特殊なルールを設けることができるなら,まだ手の打ちようもあります。 =INDEX(Sheet2!$C$1:C$10,MATCH(2,MMULT(ISNUMBER(FIND(LEFT(A1:B1,3),Sheet2!$A$1:$B$10))*1,{1;1}),0))
お礼
もう1つ回答があったのを見逃していました。申し訳ございません。 やはり、不可能なんですね。教えていただき、ありがとうございます。
補足
今回も的確なアドバイス、本当にありがとうございます。 本当なら、最初の回答で上手くいく予定だったのですが、 セルによっては、単純に「ばなな」だけではなく、「ばななB」とか「ばなな×黄色」 みたいな箇所があって、そこだけ#N/A表示になってしまいました。 keithinさんの上記のアドバイスどおり、<シート3>に標準データを入れて みようと思ったのですが、実際は、検索用の種類の言葉が3000件ほどあるので、 <シート3>にデータを簡単には作れませんでした。 関数では、限界があるのでしょうか? 本当にアドバイス頂き、ありがとうございます。