- ベストアンサー
エクセル 特定条件以外の合計
DBから出力した表の集計をかけたいのですが、下記要件で集計することは可能でしょうか? ◎テーブル(例) 行 |科目CD(セルA) | 金額(セルB) 2 |00 |10000 3 |30 |2000 4 |50 |3000 ◎条件 科目CDが"00"以外の合計 ◎試した事 =sumIf(A2:A4,"<>00",B2:B4) ネットで調べて、上記をテストしたのですが、”00”も合計されてしまいました。 ちなみに、"00"だけの合計は問題なくできました。 =sumIf(A2:A4,"=00",B2:B4) とりあえず、C列にIf関数でフラグを立ててSumifで合計させてますが、スマートではない為、アドバイスお願いいたします。 ◎現在 C列にif(A2="00",0,1) sumif(A2:4,1,b2:b4) これで合計が出来てます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
NO2の通りだと思いますが、既に00がテキストとして入力されてるのであれば、力ずくですが、下記方法でも可能です。みっともないやり方ですがご参考まで。 00をsumifで集計して全体から差し引く。 =SUM(C2:C4)-SUMIF(B2:B4,"00",C2:C4)
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
A列の「科目CD」の値が文字列になっているという事ですよね? Excelで数値に見える文字列の扱いはクセが有るのでお勧めしません。 一番良いのはA列の文字列を止めて数値にし、表示書式で2ケタ表示したうえで…… =SUMIF(A2:A4,"<>0",B2:B4) です。
お礼
ml2008様 そうです、科目CDは文字列です。 数値変換はDB側での変換が必要なので、今回の要件ではありませんでしたが、今後の勉強になりました。 ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
次の様な関数にされては如何でしょうか? =SUMIF($A$2:$A$4,"<>",$B$2:$B$4)-SUMIFS($B$2:$B$4,$A$2:$A$4,"00",$A$2:$A$4,"*?") 或いは =SUM($B$2:$B$4)-SUMIFS($B$2:$B$4,$A$2:$A$4,"00",$A$2:$A$4,"*?")
お礼
kagakusuki様 アドバイスありがとうございます。 なるほど、総合系から引くという手段もありですね、勉強になりました。 ありがとうございます。
お礼
dogs_cats様 返信ありがとうございます。 kagakusuki様のやり方で、スマートに書いて頂いて、大変勉強になりました。 ありがとうございます。