もう 5回目になってしまいました

SUMPRODUCT 関数について

 1.過去? の 関数 

 2.過去? の 関数 その2 

 3.過去? の 関数 その3 

 4.過去? の 関数 その4 

 

SUMPRODUCT 関数って、本当にいろいろ使用していました

今までのサンプルでは

いわば、AND条件のものを 抽出していました

 ※ 「男」で、かつ=AND 「ゴルフ」のもの

 

今回は、いわば OR条件のものを求めるケース

ゴルフまたはヨット」 の 「税込代金」 を 求める

=SUMPRODUCT((G3:G47="ゴルフ")+(G3:G47="ヨット"),J3:J47)

ゴルフ」の場合 と 「ヨット」の場合を 足す

そして 別のパターン

今のは、同じ列での別の条件でしたが

違う列での条件の場合

このように、単純に 足すのでは違ってくる

上のような一覧表で

「店舗名」 は、「広尾店」 または、「種別」 が、「輸入菓子」の 金額合計

まずは、前回と同じような式を作成してみます

=SUMPRODUCT((D3:D1002="広尾店")+(E3:E1002="輸入菓子"),I3:I1002)

この場合

「広尾店」で、「輸入菓子」の「金額」が、2回計算されてしまう

 ※ 「広尾店」で、1回 「輸入菓子」で、1回

修正するには

「広尾店」「かつ「輸入菓子」の金額を引く

-SUMPRODUCT((D3:D1002="広尾店")*(E3:E1002="輸入菓子"),I3:I1002)

※ -SUMPRODUCT((D3:D1002="広尾店")*(E3:E1002="輸入菓子")*(I3:I1002))

 

=SUMPRODUCT((D3:D1002="広尾店")+(E3:E1002="輸入菓子"),I3:I1002)-SUMPRODUCT((D3:D1002="広尾店")*(E3:E1002="輸入菓子"),I3:I1002)

 

これでも、良いのですが

以前のブログで

もっと短くできたような気がします

ε=ε=ε=ε=ε=┏( @_@)┛

ありました

SIGN 関数 を 使うようです

 

SIGN関数は、数値の正負を調べます

 正の数のときは 1、

  0 のときは 0、

 負の数のときは -1 となります

本来の使い方ではないのですが

これを使うと

「1」以上の値になっても 

正の場合は、すべて 「1」 と して計算してくれる

 ※ 足した値が 行単位では 0 か 1 に なる

 =SUMPRODUCT(SIGN((D3:D1002="広尾店")+(E3:E1002="輸入菓子")),I3:I1002)