- ベストアンサー
Excel2000で複数条件集計をする方法
- Excel2000を使用して複数条件の集計を行いたい場合、SUMPRODUCT関数を使用することができます。指定した条件を満たすセルの合計を取得することができますが、数値の範囲に時間の変換式が組み込まれている場合、集計結果に「#NUM」と表示されることがあります。
- 集計結果に「#NUM」が表示される場合、ISERROR関数を使って「#NUM」を無視するような式を組み込むことができます。具体的には、SUMPRODUCT関数の結果がエラーの場合、代わりに0を表示するような式を書くことができます。
- また、検索範囲が日々変化する場合は、範囲設定を動的に行うことができます。具体的には、範囲の最終行を自動的に取得する関数を使って、範囲設定を行うことができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず出来る方法としては =SUM((INT(B6:B1000)=B3)*(C6:C1000=C3)*IF(ISNUMBER(D6:D1000),D6:D1000,0)) をCtrl+Shift+Enterで入力すると,できます。 もちろん既に寄せられているアドバイスの通り,D列のエラーを事前に解消しておくのが最適なのは言うまでもありません。 また計算できることが目的じゃなくSUMPRODUCT関数が使いたいご質問だったときは,他の方のアドバイスをお待ち下さい。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
D列には =HOUR(N4-O4)*60+MINUTE(N4-O4) のデータが有ってそれの集計をするとのことですか? それにしても上の式は正しいのですか? N4やO4のデータは時間の入ったデータになっているのですね。でしたら次のような式にしてエラーの表示を無くすようにすることでしょう。 例えば =IF(COUNT(N4:O4)<>2,"",IF(N4>=O4,HOUR(N4-O4)*60+MINUTE(N4-O4),0)) 又は =IF(COUNT(N4:O4)<>2,"",IF(N4>=O4,HOUR(N4-O4)*60+MINUTE(N4-O4),HOUR(O4-N4)*60+MINUTE(O4-N4)))
お礼
ご回答ありがとうございます。 D列のエラーを表示しないようにすることが一番の近道だと思います。 諸事情によりなるべくD列の式には手を加えず解決をしたかったのですが、最終的にその方法も試行してみました。 結果は惨敗でしたが(笑) 教えて頂いた式も大変参考になりました。 今後に活かしたいと思います。 ありがとうございました。
- edomin7777
- ベストアンサー率40% (711/1750)
まずは、 > 必ず1ヶ所に「#NUM」が表示されます。 これの原因を調べ、対策を取る方が簡単です。 > どちらの式でも =(IF(ISERROR~ 等を試してみましたが、やはりうまくいきませんでした。 > 勉強不足の為、使い方の認識が根本的に違っているのかもしれません。 どうやって記載したのかが書かれていないので、違っているかどうかも判断できません。 でも、間違っているのは「使い方」ではなく、エラーをそのままにしておくという「考え方」ですよ。
お礼
ご回答ありがとうございます。 ご指摘はごもっともです。 いろんなサイトを参照し試行していたので経緯を書くとだいぶ長くなってしまうと思い割愛させて頂きました。 データ参照範囲は別の人が作った式だったので、なるべく手をつけずに解決する方法を模索しておりました。 まずは、エラーを出さないようにすること。 この考え方はしっかり今後に活かしたいと思います。 ありがとうございました。
お礼
ご回答ありがとうございます。 上記の式で完璧な動作をしてくれました。 SUMPURODUCTにこだわっていたのではなく、Excel2000でSUMIFSが使えず、複数条件で検索するとSUMPRODUCTを勧めるサイトが多かったために一番有効なのだと思い込んでおりました。 普段全く関数を使う機会がないので戸惑っておりましたが、たくさんの方に回答して頂きとても感謝しております。 直接的に解決へと導いて下さいましたkeithinさんの回答をベストアンサーとさせて頂きます。 本当にありがとうございました。