- ベストアンサー
エクセルで特定のセルの合計
簡単な質問ですいません。 A 1 20 奇数行(1・3・5・7)の 2 11 合計96を出す関数が有れば 3 45 教えて下さい。 4 25 5 13 6 13 7 18
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 新回答ではないですが、ちょっと気になったので。 No.3の方が挙げられた、SUMPRODUCT関数についてですが、 このSUMPRODUCT関数も、配列式(配列数式)です。 SUMの数式とは、[Ctrl]+[Shift]+[Enter]で確定するかどうかが異なるだけです。 [Ctrl]+[Shift]+[Enter]で確定するのは、SUM関数にある、共通部分参照という機能を無効にするためです。 SUMPRODUCT関数には、そもそもこの共通部分参照という機能がないので、[Ctrl]+[Shift]+[Enter]で確定する必要がないだけです。 なお、これら配列数式の詳細は、以下のページを熟読して下さい。 http://pc21.nikkeibp.co.jp/pc21/pc_10/hr6.htm あと、おまけ。 SUMの数式は、 =SUM(IF(MOD(ROW(A1:A7),2),A1:A7)) でもOKです。 (ただし、データ内に小数がある場合は、動作が異なります。) あと、SUMPRODUCT関数の方は、 =SUMPRODUCT((MOD(ROW(A1:A7),2)=1)*1,A1:A7) とした方がいいかも知れません。 このように計算範囲を第2引数にまわすと、データ範囲(A1:A7)に数値として認識出来ない値(文字列など)があった場合に、無視(0とみなす)してくれます。 元の、No.3の方の数式だと、エラーになります。 まあ、数値以外が入ることがなければ、別に問題はないんですけど。 (なお、未入力の空白はエラーにはなりません。) 以上、補足とおまけでした。
その他の回答 (4)
- moon00
- ベストアンサー率44% (315/712)
すいません。#3さんのご指摘通り、偶数行の場合を書いてしまいました。 =SUM(IF(MOD(ROW(A1:A7),2)=1,A1:A7)) 余りを「1」にしないといけなかったですね。 申し訳有りません。
- ja7awu
- ベストアンサー率62% (292/464)
配列式を使用しない方法。 範囲が数値か空欄の場合、 =SUMPRODUCT((MOD(ROW(A1:A7),2)=1)*A1:A7) で如何でしょうか。 範囲内に文字列が入っていても、それを除外して計算する場合は、 =SUM(IF(MOD(ROW(A1:A7),2)=1,A1:A7,0)) を入力し、Shift+Ctrl+Enter で確定し、配列式にします。{} で括られる。 No.2さんのは、偶数行の場合では・・・
- moon00
- ベストアンサー率44% (315/712)
配列数式を利用すればできます。 合計を記入したいセルに =SUM(IF(MOD(ROW(A1:A7),2)=0,A1:A7)) と入力してCtrl+Shift+Enter を押す。 そうすると中括弧が付き、配列数式になります。 MOD関数で行番号(ROW関数で取得)を2で割った余りを 判定し、(奇数だとあまりが1になります) その条件にあうセルだけを計算しています。
- hiro_1999
- ベストアンサー率31% (86/277)
=SUM(A1+A3+A5+A7) ではだめですか? 数値が多いとたいへんでね。