- ベストアンサー
Excelで「前」とある行だけの数値の合計を求める方法
- Excelで「前」とある行だけの数値の合計を求める方法について教えてください。
- MOD関数を使用して一行置きを指定する方法と、IF関数を使用して「B列が「前」である場合」と「B列が「後」である場合」を条件とする方法があります。
- MacOS SierraとExcel for Mac 2011の環境で使用する場合でも、上記の方法は有効です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>上記のリンクを参考に、=SUM(IF(MOD(ROW(C1:c6),2)=1),c1:c6, "")と入力してみたのですが、エラーとなってしまいます。(入力した数式にはエラーがあります。と表示されEnterキーが押せない状態になります。) >間違っているところを教えてください。 Enterキーが押せないのではなく数式に誤りがあるため確定できないことが原因です。 「)」(閉じ括弧)の位置に誤りがあります。 =SUM(IF(MOD(ROW(C1:c6),2)=1),c1:c6, "") ↓ =SUM(IF(MOD(ROW(C1:C6),2)=1,C1:C6, "")) 尚、数式を確定時にはCtrlとShiftを押しながらEnterキーを打鍵してください。 >また、MODで一行置きを指定する場合以外で、IFを使って「B1:B6が"前"の場合」「B1:B6が""後"の場合」で条件を指定して求められる場合はその式も教えていただけると助かります。 SUM関数とIF関数の組み合わせで考えるよりSUMIF関数を使う方が合理的です。 =SUMIF(B1:B6,"前",C1:C6) =SUMIF(B1:B6,"後",C1:C6) 上記のSUMIF関数の場合は確定時にEnterキーのみの打鍵で問題ありません。 他の方法としては次のような数式でも集計可能です。 =SUM((B1:B6="後")*C1:C6) 確定時にCtrlとShiftを押しながらEnterキーを打鍵する。 =SUMPRODUCT((B1:B6="後")*C1:C6) Enterキーのみの打鍵で良い。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
・前後が文字列でも、確実に1行おきにあるなら、SUMIF関数を誰でも思いつくだろう。 ・配列数式を使うなら =SUM(B2:B9*MOD(ROW(A2:A9),2))と入れてSHIFT+CTRL+ENTER 下記例で結果 12 例データ A,B列 a1 1 a2 2 a3 3 a4 4 a5 5 a6 2 a7 2 a8 4 ・配列数式を使わないなら、作業列を1列使えばやさしい その行の行番号の偶数か奇数で、0,1を出すとかすれば、SUMIFやかけざんしたものを足せばよい。SUMPRODUCT関数利用とか。
お礼
くわしくありがとうございました。
- msMike
- ベストアンサー率20% (364/1805)
- mshr1962
- ベストアンサー率39% (7417/18945)
>間違っているところを教えてください。 リンクの詳細のところに書いてますけど、Enterでなく Ctrl+Shift+Enterで確定して配列数式にする必要があります。 配列数式以外だと、こんな方法もありますが。。。 =SUMPRODUCT((MOD(ROW(C1:C6),2)=1)*(C1:C6)) こちらはEnterで確定できます。ただ計算にメモリーを使うので 同様の数式が多い場合、EXCELの動作が遅くなりますけどね。 >「B1:B6が"前"の場合」「B1:B6が""後"の場合」で条件を指定して求められる場合 =SUMIF(B1:B6,"前",C1:C6) =SUMIF(B1:B6,"後",C1:C6)
お礼
わかりやすくありがとうございました。より簡潔な数式も教えていただけて助かりました。
- mt2015
- ベストアンサー率49% (258/524)
B列が「前」のC列の値の合計でいいのなら↓コレで =SUMIF(B1:B6,"前",C1:C6)
お礼
簡潔で分かりやすい数式をありがとうございました。とても参考になりました。
お礼
すみません、CtrlとShiftを押しながらEnterキーで入力したらできました。ありがとうございました。 先ほどは、うっかりくせでEnterキーのみで決定してしまっていたようです。(Enterキーのみだと答えが変わってしまうのがどうしてなのか不思議です)
補足
お教えいただいた、 =SUM(IF(MOD(ROW(C1:C6),2)=1,C1:C6, "")) の数式を入力すると、 前、後に関わらず上から下まで全ての数値を合計した数値が出てしまいます。 どこを直せば、B列が前の場合のみ、後の場合のみの答えを出せるでしょうか?