- 締切済み
Excelにて複数条件を満たす行の特定のセルの値を返す関数
Excelにて複数条件を満たす行の特定のセルの値を返す関数を作りたいのですが、上手く行きません。 <Sheet1> A列 B列 C列 1 2008/6/1 ★ 320 2 2008/6/1 ☆ 300 : : : Sheet2のA1に、「A列が2008/6/1で、B列が☆の場合、C列の値を返す」という関数を入れたいのですが、どうも上手く行きません。 良い式がありましたら教えて下さいm(_ _)m
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- merlionXX
- ベストアンサー率48% (1930/4007)
> 同じ条件が成立する複数の行は存在しないので、その条件は不要 > エラー表示はさせず、空白にしたい 以下のようにしてみてください。 =IF(SUMPRODUCT((A1:A5="2008/6/1"*1)*(B1:B5="☆"))=0,"",INDEX(C:C,SUMPRODUCT((A1:A5="2008/6/1"*1)*(B1:B5="☆")*ROW(A1:A5))))
まったく見当が付かないというのでしょうか。 INDEX,MATCH,LOKKUP,VLOOKUP,SUMPRODUCTなどの関数を組み合わせてみてはいかがでしょう。(IF関数も使うかもしれません) 組み合わせ方によって様々な手法があります。質問者自身で考えた方法についてそれが正しく動くようアドバイスを求める方が、知識として身につくと思います。 まったくお手上げというのであれば、他の方の手法を参考にすることで理解が深まると思いますが、まずは自分で考えた方法を示してみましょう。 きっと良い解決方法をアドバイスしていただけると思います。 さて、続いて質問内容について補足を求めます。 同じ条件が成立する複数の行があった場合、全てを抽出するのでしょうか。 一番上、または一番下にある行を抽出するのでしょうか。 それによって答えはまったく異なる物になります。 また、条件に一致する物がない場合はどのようにするかです。 エラーが表示されても良いのか、エラーなど表示せず空白にするのか、条件に一致する物が無いことを示すメッセージを表示するのか、など。 (こういう事を考えることで処理の方法を理解できるようになります。是非考えてください。)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =INDEX(C:C,SUMPRODUCT((A1:A5="2008/6/1"*1)*(B1:B5="☆")*ROW(A1:A5)))
補足
補足させて頂きます。 >同じ条件が成立する複数の行があった場合、全てを抽出するのでしょうか。一番上、または一番下にある行を抽出するのでしょうか。 同じ条件が成立する複数の行は存在しないので、その条件は不要です。 >また、条件に一致する物がない場合はどのようにするかです。 エラーが表示されても良いのか、エラーなど表示せず空白にするのか。 エラー表示はさせず、空白にしたいです。