• ベストアンサー

エクセルのSUMPRODUCT関数についての質問

SUMPRODUCT関数を使って、1列おきにカウントさせる式をつくっていて、 セルの指定方法について疑問をもちましたので質問させていただきます。 A1からJ1に数字がはいっているとして、偶数列だけカウントします。 =SUMPRODUCT((MOD(COLUMN(A:J),2)=0)*(A1:J1<>0)) =SUMPRODUCT((MOD(COLUMN(A:J),2)=0)*((A1:J1)<>0)*1) 上の式で答えはでるのですが、*以降の指定の違いがわかりません。 どなたかお分かりになる方おられましたら、よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

=SUMPRODUCT((MOD(COLUMN(A:J),2)=0)*(A1:J1<>0)) =SUMPRODUCT((MOD(COLUMN(A:J),2)=0)*((A1:J1)<>0)*1) 上のようなケースでは個々の引数の結果はFALSEまたはTRUEのどちらかで前者では0後者では1として数えられています。したがって*1を行っても行わなくても同じ結果になります。 そうではないケース例えば次のようなケースです。 A1セルに5A、A2セルに6B、A3セルに7Cといったデータが入力されており数値のみを加算する場合です。 =SUMPRODUCT(LET(A1:A3,1)) とした場合には答えは0になります。 =SUMPRODUCT(LEFT(A1:A3,1)*1) とした場合には答えは18となります。 このように個々の引数の結果がFALSEやTRUEとならないケースでは*1が必要となってきます。

outreach2010
質問者

お礼

お礼が遅くなって申し訳ありません。 わかりやすく、ご丁寧な回答、有難うございます。 ずっとモヤモヤしていたのが、すっきりしました! また、数値部分だけ計算できるとは知りませんでした。 教えていただいて有難うございました!!

その他の回答 (1)

回答No.1

余計な定数項(TRUE)がくっついてるだけでしょう、、、

outreach2010
質問者

お礼

お礼が遅くなってすいません。 有難うございました。

関連するQ&A