• ベストアンサー

エクセルの1行おきの集計

エクセルで1行おきの集計をしています。   A 1 1 2 2 3 1 4 2 5 関数A(A1とA3の合計)(合計2) 6 関数B(A2とA4の合計)(合計4) 関数A SUM(IF(MOD(ROW(A$1:A$4),2)=1,A$1:A$4,0)) 関数B ???????????????????? 関数Aはうまくいっているのですが、 関数Bの設定がよくわかりません。。。 設定方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 No.2の方の回答の通りですが、マイクロソフトのページにそのままの内容が載っています。 http://support.microsoft.com/default.aspx?scid=kb;ja;402181

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;402181
noname#12381
質問者

お礼

参考URLがとてもわかりやすかったです。

その他の回答 (4)

回答No.4

ずいぶん昔に考えた方法ですが、 奇数行の合計: =SUMPRODUCT(範囲,ROW(範囲)-ODD(ROW(範囲))+1) 偶数行の合計: =SUMPRODUCT(範囲,ROW(範囲)-EVEN(ROW(範囲))+1) oddは奇数のことでevenは偶数のことですから、憶えやすいです。

  • zephyrus
  • ベストアンサー率41% (181/433)
回答No.3

よく分からなかったので実際にEXCELに「関数A」をコピペしてみました。値は6と出ました。正解は2のはずですね。 関数Aを検討してみましょう。 その前にROWS関数とROW関数は働きが違うことをチェックしてください。ROWSが範囲の行数をかえすのに対し、ROWは配列としての範囲の行番号をかえすに過ぎません。 すなわちROW(A$1:A$4)はA1のrowである1をかえすのみです。それを2で割ったあまりが1であるなら(ここはMOD関数ですね)、A$1:A$4をSUMしなさい、という意味なのだと思います。 だとするならここはふつう、 =SUM(IF(MOD(ROW(A$1:A$4),2)=1,A$1:A$4,0)) というよりは =IF(MOD(ROW(A$1:A$4),2)=1,SUM(A$1:A$4),0) とするのではないかと思います。しかし、これでも値は6となることはもちろんです。 解答は#1のかたで出ていますが、別解を考えてみましょう。私が考えるのだからイモ手です(笑)。先にお断りしておきますね。 B1セルに次の式を書きます。 =IF(MOD(ROW(A1),2)=0,0,1) これをB2~B4にコピー。1,0,1,0となったと思います。 次に、 関数A =SUMIF($B$1:$B$4,1,$A$1:$A$4) 関数B =SUMIF($B$1:$B$4,0,$A$1:$A$4) とします。目的の値が得られたと思います。 これの欠点はひとつの式で表わせないし、判別用の列が余分に必要ということです。 その分やさしく書けるとは言えると思いますが。 ご質問の趣旨をはずしていたらごめんなさい。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>関数Aはうまくいっているのですが 文字通りではうまく行かないはず。怪しい。 配列数式では旨く行くようです。 式は同じものを入れて、Shift+Ctrl+Enterを押すもの。 そう言うことから言えば、偶数列を足すのは =SUM(IF(MOD(ROW(A$1:A$6),2)=0,A$1:A$6,0)) と入れてShift+Ctrl+Enterで配列数式で A1:A6が1から6を入れていると12(=2+4+6) となりましたが。

  • izumokum
  • ベストアンサー率41% (7/17)
回答No.1

=SUMPRODUCT(MOD(ROW(A1:A4)-1,2),A1:A4) 途中に文字列が入っても、空白があってもOKかと。

関連するQ&A