- ベストアンサー
関数の意味がわかりません
人が作成した表に下記のような関数が使用されています。1列とばしで合計を求めている表なのですが・・・。 =SUMPRODUCT((A4:Z4)*(MOD(COLUMN(A4:Z4),2)=0)) 1つずつの関数の意味はわかるのですが、何故この組み合わせで1列おきに計算できるのかが分かりません。 どなたかこの計算式の意味を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 COLUMN関数は引数(セル番地)の列番号を返します。 この場合は引数が範囲(配列)なので、戻り値も COLUMN(A4:Z4)={1,2,3,・・・,26} と配列になります。 MOD関数は、第1引数を第2引数で割った余りを返します。 この場合は第1引数が範囲(配列)なので、戻り値も MOD({1,2,3,・・・,26},2)={1,0,1,・・・,0} と配列になります。 次に、「数式(または値)=0」の形は条件式で、成立する場合はTRUE、不成立の場合はFALSEを返します。 この場合は左辺が範囲(配列)なので、戻り値も ({1,0,1,・・・,0}=0)={FALSE,TRUE,FALSE,・・・,TRUE} と配列になります。 さらに、このTRUEとFALSEは論理定数で、四則演算のなかでは TRUE=1 FALSE=0 に換算されて計算されます。 最後に、SUMPRODUCT関数は、対応する行どうしの績の和ですから、 SUMPRODUCT=((A4,B4,C4,・・・,Z4)*(FALSE,TRUE,FALSE,・・・,TRUE) =(A4*0+B4*1+C4*0+・・・+Z4*1) =(B4+D4+F4+・・・+Z4) と1列おきの合計になるわけです。 なお、配列数式に関する下記のページで、上記に関する説明がありますので、見てみて下さい。 http://pc21.nikkeibp.co.jp/pc21/pc_10/hr_top.htm