- ベストアンサー
Excelで質問です。
VLOOKUPでアルファベットの大文字小文字を区別する方法はないでしょうか? A列 B列 AAA 123 aaa 456 とあるときに、普通のVLOOKUPでは判別してくれません。 どうしたら良い方法がありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
長い数式ですが如何でしょうか。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =IF(COUNTIF(A:A,D1),INDEX(B:B,SMALL(IF(NOT(ISERROR(FIND(D1,$A$1:$A$100))),ROW($A$1:$A$100)),1)),"")
その他の回答 (2)
----引用---ここから A列 B列 C列 D列 E列 AAA 123 AAA 答えを求めるセルの列 aaa 456 aaa というふうにD列に対しての答えを、B列から引き出すようにしたいのですが、 VLOOKUPだと大文字小文字を区別してくれないのです。 ----引用---ここまで 要は、 D列の値を、A列から探して、同じ行にあるB列のデータを取得したい。 でも「AAA」と「aaa」が区別されないのでどうしたらよいか。 ということだと思いますが、 残念ながら、これは仕様のようです。検索系の関数を見てみましたが区別はしないようになっています。 元々エクセルは外国生まれなので、検索等でアルファベットの大文字小文字を区別してしまうと 「JIM」「Jim」「jim」のすべてを別々に検索しなくてはならないので効率が悪くなるからでしょう。 答えになっていませんが、 ここはむしろ、同じ文字の大文字小文字コードはやめることを考えるべきでしょう。 なお、「編集」メニューの「検索」「置換」のオプションには「大文字小文字を区別する」という項目があるので、 関数にもこのオプションをつけて欲しいものです。
お礼
回答ありがとうございます。 大文字小文字が区別されない仕様だということは知っていましたので、 質問をさせて頂きました。 大文字小文字のコードをやめることもできません。 No2の方の回答で解決しました。 ありがとうございました。
- maron--5
- ベストアンサー率36% (321/877)
◆VLOOKUP関数ではありませんが =INDEX($B$1:$B$10,MAX(INDEX(EXACT("aaa",$A$1:$A$10)*ROW($A$1:$A$10),)))
補足
回答ありがとうございます。 すみません、私の説明が足りなかったようですので、補足いたします。 A列 B列 C列 D列 E列 AAA 123 AAA 答えを求めるセルの列 aaa 456 aaa というふうにD列に対しての答えを、B列から引き出すようにしたいのですが、 VLOOKUPだと大文字小文字を区別してくれないのです。 他の関数でも全然問題ありませんので、おわかりでしたら教えて下さい。 どうぞよろしくお願い致します。
お礼
回答ありがとうございます。 完璧です! 助かりました、ありがとうございました。