- 締切済み
EXCEL 入力された数値を別シートから検索したい
EXCELで、以下のようなデータシートを作成しています。 A B C D E 1 あ 10 2 い 20 3 う 30 4 え 40 5 お 50 別シートのA1に「30」と入力したら、 B1に「B3」とデータシートの「30」が入力されている セルのアドレスを表示したいのです。 もしくは行番号だけでもいいのですが、 このような場合、どの関数を使用すればよろしいのでしょうか? VBAは避けたいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
当初質問には、重大な条件漏れがあったようだ。回答者のことも考えてほしい。回答が徒労になる。 列が3列(例)の場合の例の回答を挙げる。 該当の初出のセルしか関数では捕らえられないが、エクセル関数の値は1つで、どうしようもないでしょう。 しかし技巧的な方法が必要ですよ。 例データB1:E100(A列をはずした意味はない) a 20 10 30 b 10 40 50 c 20 30 60 d 40 70 10 ・・ Eはデータのあるかもしれない最右列を指定してよい。 ーー 値70のセルを探ス例。 =INDEX($A$1:$G$100,MIN(IF(C1:E100=70,ROW(C1:E100),1000)),2) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。 B列の氏名とかが結果としてかえる。70なぞ返しても仕様がない。 ー 行と列は =MIN(IF(C1:D100=70,ROW(C1:D100),1000)) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。 =MIN(IF(D1:E100=70,COLUMN(D1:E100),256)) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。 ーー 結果は上例で d 4 4
=IF(ISNA(MATCH(A1,データシート!B:B,0)),0,MATCH(A1,データシート!B:B,0)) +IF(ISNA(MATCH(A1,データシート!C:C,0)),0,MATCH(A1,データシート!C:C,0)) とするか 1000行以下なら =MATCH(1,MMULT((データシート!B1:C1000=A1)*1,{1;1}),0)
> もしくは行番号だけでもいいのですが、 =MATCH(A1,データシート!B:B,0) でどうですか?
お礼
早速の解答、ありがとうございます。 質問に書き忘れてしまったのですが、 A B C D E 1 あ 10 2 い 20 60 3 う 30 70 4 え 40 5 お 50 80 となっていることもあり、その中から たとえば「70」を検索することもあるのです。 その場合、MATCH関数ではエラーが出てしまいます。 そのような場合の対処を教えていただけないでしょうか?