- ベストアンサー
エクセルで複数の条件を満たした値を返す関数を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です! たびたびお邪魔します。 No.2さんへの補足を読ませてもらうと IDも商品名にも重複があるみたいなので 作業列なしに一気にという方法はかなり難しいと思います。 どちらか一方に重複がなければ配列数式で可能だと思いますが・・・ 色々考えても良い案が出てきません。 前回同様に作業列を使うのが一番簡単なのではないでしょうか? そして、作業列が目障りであれば非表示にする方法もあるかと思います。 尚、前回の数式はオートフィルで下へコピーするのを考慮していませんでしたので、 今一度オートフィルで下へコピーしても大丈夫の数式を書いておきます。 前回の画像の表でI2セルを =IF(COUNTBLANK($G2:$H2)>0,"",INDEX(B$2:B$100,MATCH($G2&$H2,$E$2:$E$100,0))) という数式に訂正してください。 (100行目まで対応できる数式にしています。) この程度の方法ですが あまりお役に立たないようでごめんなさいね。m(__)m
その他の回答 (2)
こんばんは。 添付の画像を見る限りIDは重複していないようなので、IDを使ってVLOOKUP関数で出せるのですが、実データではIDに重複があるのでしょうか。 また、IDと製品名の組み合わせに重複はありませんか? とりあえずIDには重複があるとして考え、製品名との組み合わせでは重複がないとします。 H2に =DGET($A$1:$D$9,B1,$F$1:$G$2) と入れて、I2にコピーしてください。 ただし、検索条件を満たすものがない場合は「#VALUE!」のエラーになるので、エラー表示をしたくない場合は、IF関数と組み合わせるなどのエラー処理をしてください。 あと、関数ではなく「フィルタオプションの設定」という機能を使っても出すことが出来ます。参考までに。
補足
回答ありがとうございます。すみません、説明不足でした。 IDは重複があります。IDと製品名を組み合わせると重複が無いというデータになります。 あと抽出する側の表ですが、複数行あります。 教えていただいたDGETで1行目は抽出は出来たのですが、2行目からがエラーになってしまいます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 IDに重複はないものとします。 ↓の画像のように作業用の列として、E列を使わせてもらっています。 E2セルを =A2&D2 としてオートフィルでずぃ~~~!っと下へコピーします。 そして、I2セルに =IF(COUNTBLANK($G$2:$H$2)>0,"",INDEX(B$2:B$100,MATCH($G$2&$H$2,$E$2:$E$100,0))) という数式を入れ、J2セルまでオートフィルでコピーします。 これで↓の画像のような感じになります。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m
補足
回答ありがとうございます。 教えていただいた関数で抽出できました。抽出する表の2行目以降もできたんですが、 欲を言うと、左の表に作業用の列を使用しないで抽出する方法があれば教えていただきたいんですが。
お礼
2回も回答ありがとうございます。 やはり作業列を使うのが確実なんですね。欲を出しすぎました(汗) また、コピー対応の数式まで教えていただき本当に助かります。 こちらを参考にさせていただきます。 ありがとうございました。