- ベストアンサー
EXCEL関数:2つの条件から1つの値を取得する方法
- EXCELの関数を使用して、2つの条件のうちの1つに一致する場合に、他のセルの値を取得する方法を教えてください。
- 具体的な質問の内容は、Sheet2に名簿があり、Sheet1で名前かニックネームを入力すると、該当する人の登録番号が表示されるようにしたいというものです。
- VLOOKUP関数を使用して試みたが、2つの条件のどちらかに一致する場合に値を取得する方法がわかりません。他の関数や方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは =VLOOKUP(B2,Sheet2!B2:D10,3,FALSE) ← A とします =VLOOKUP(B2,Sheet2!C2:D10,2,FALSE) ← B とします 関数が組み合わさっていて理解しづらい時には 分解して、一つ一つの結果を検証するのが早道だと思います。 とりあえず上記2つの式をお試し下さい。 B2に入力されたものによって正しい結果が出たり エラーが出たりするはずです。 IF(ISERROR(VLOOKUP(B2,Sheet2!B2:D10,3,FALSE)) はじめのIF式の倫理式 (1) IF(ISERROR(VLOOKUP(B2,Sheet2!C2:D10,2,FALSE)),"*",VLOOKUP(B2,Sheet2!C2:D10,2,FALSE)) はじめのIF式の真の場合(2) VLOOKUP(B2,Sheet2!B2:D10,3,FALSE) はじめのIF式の偽の場合 (3) 初めのIF式でエラーになるなら (1) (2)の処理へ 初めのIF式でエラーにならないなら (1) (3)の処理へ (1)がエラーにならないなら(3)は正しく抽出されるはずなので。 (2)の処理も細かく分けて考えます。 IF(ISERROR(VLOOKUP(B2,Sheet2!C2:D10,2,FALSE)) 2つめのIF式の倫理式(2-a) "*" 2つめのIF式の真の場合 (2-b) VLOOKUP(B2,Sheet2!C2:D10,2,FALSE) 2つめのIF式の偽の場合 (2-c) 2つめのIF式は初めのIF式(1)がエラーの場合なので (2-a)がエラーということは一番上のA、Bの式共にエラーになるはずです つまり、該当なし。 なので、(2-a)がエラーならば (2-b)で * を表示させます。 (2-a)がエラーで無いならば Aはエラー、Bは正しい結果の返る式になるので 正しい結果を返す事の出来る式 (2-c)で使うようにしています。 といった感じですがご理解頂けますでしょうか? >簡単にでも結構ですので、式の解説をお願いできないでしょうか? 簡単ではなく、余計に難しくなってしまったかもしれないですね エヘヘッ (^-^)ゞ ポリポリ
その他の回答 (2)
- kaisendon
- ベストアンサー率44% (114/257)
こんばんは Sheet1の任意のセルに =IF(ISERROR(VLOOKUP(B2,Sheet2!B2:D10,3,FALSE)),IF(ISERROR(VLOOKUP(B2,Sheet2!C2:D10,2,FALSE)),"*",VLOOKUP(B2,Sheet2!C2:D10,2,FALSE)),VLOOKUP(B2,Sheet2!B2:D10,3,FALSE)) としては如何でしょうか?
お礼
kaisendonさん、ご回答ありがとうございます。 教えていただいたとおりに式を入力したら、出来上がりました!! 本当に助かりました♪ ありがとうございます。 でも、式の意味を理解できないまま、 教えていただいたものをそのままコピーするようなかたちで 式を完成させたので、どうしてこうゆう式になるのかわかりません。 もしよろしければ、簡単にでも結構ですので、式の解説をお願いできないでしょうか? あつかましいお願いですみません。 面倒に感じられましたら、そのままにしておいてください。 よろしくお願いします。
- takuranke
- ベストアンサー率31% (3923/12455)
=MATCH (検索値,範囲,照合の方法) で出来ると思います。
お礼
takurankeさん、ご回答ありがとうございます。 MATCH関数についてよく知らないので、教えていただいたサイトを参考に勉強してみます。
お礼
お礼が遅くなってしまって、申し訳ございません。 大変丁寧なご説明ありがとうございました。 なんとか理解することができました。