- ベストアンサー
[エクセル] 特定の文字がある行を合計する
こちらには困ったときにいつもお世話になっております。今回もよろしくお願いいたします。 エクセル2002ですが、まずは下記をご覧ください。 商品 売価 状態 ------------------------ 商品1 100 1 商品2 200 2 商品3 300 1 商品4 200 1 商品5 100 1 となっております。商品・売価は見たとおりですが、状態とは「販売中(1)」か「在庫切れ中(2)」かをあらわします。それで、販売中と在庫切れ中の売価の合計をそれぞれ出したいのです。出力するセルはどこでもかまいません。日々、新たな商品の追加・状態の変化があり手作業ではめんどくさくなってきました。 ご存知の方がいらっしゃいましたら、ご協力お願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
SUMIF関数でできそうです 下記のようになっているとき(A列は省略) B C 1 100 1 2 200 2 3 300 1 4 200 1 5 100 1 =SUMIF(C3:C7,"=1",B3:B7) とすればC列が1になっている行のB列の値を合計できます。 =SUMIF(検索範囲,検索条件,合計範囲)という意味です。
その他の回答 (4)
- nihonjinn
- ベストアンサー率39% (79/200)
皆さんの解答で十分ですが、補足を =SUMIF(C:C,"=1",B:B) C:CとはC1:C65536をあらわします。上の式では空白のセルではエラーが出ませんからつかえます。これでデータを追加すると結果を反映してくれます。 =SUMPRODUCT((C1:C65535=1)*1,B1:B65535) この関数はCTRLキーとShiftキーを押さなくても配列関数になってくれる便利な関数ですが、配列関数の場合なぜかC:Cという形にするとエラーが出てしまうのでC1:C65534と最大限の範囲を指定してください。
お礼
ご回答頂きまして、ありがとうございました。 大変勉強になりました。今後も何かありましたら、 よろしくお願いいたします。
- imogasi
- ベストアンサー率27% (4737/17069)
直前のご質問に配列数式があったので、敢えて使ってみます (テスト例データ)A1:C6 商品1 100 1 商品2 200 2 商品3 300 1 商品4 200 1 商品5 100 2 商品6 50 1 (関数式・配列数式) B8に=SUM(IF(C1:C6=1,B1:B6,""))と入れてCTRLキーとShiftキーを押したまま、Enterキーを押す。 650になります。 B9に=SUM(IF(C1:C6=2,B1:B6,""))と入れてCTRLキーとShiftキーを押したまま、Enterキーを押す。 300になります。 =SUMIF関数でも出来ますが、そちら(#1ご回答)と条件表現が少し違います。
お礼
ご回答頂きまして、ありがとうございました。 大変勉強になりました。今後も何かありましたら、 よろしくお願いいたします。
- tbobi
- ベストアンサー率45% (544/1189)
#1です。 計算式がズレてました。 正しくは =SUMIF(C1:C5,"=1",B1:B5) です。
- damejan
- ベストアンサー率30% (58/192)
条件でsumを取るやり方があると思いますが、私には分かりません。今回の場合、状態は2値(販売中か在庫切れ中)ですので、姑息な手が使えます。 「商品」「売価」「状態」 がそれぞれ、A, B, C列だとします。まず、販売中を1で、在庫切れを0で表すように変更します。D列にB*Cを、E列に-B*(C-1)を計算するようにします。そうすると、D列を合計すると販売中の合計、E列を合計が在庫切れの合計が求まります。 D列、E列の見た目が汚いようなら、文字の色を背景(おそらく白)と同じにしてやれば、ごまかせるでしょう。
お礼
ご回答頂きまして、ありがとうございました。 大変勉強になりました。今後も何かありましたら、 よろしくお願いいたします。
お礼
ご回答頂きまして、ありがとうございました。 大変勉強になりました。今後も何かありましたら、 よろしくお願いいたします。