[[20170512085623]] 『SUMPRODUCT関数で複数条件の合計を求めたい』(とも) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『SUMPRODUCT関数で複数条件の合計を求めたい』(とも)

今現在もSUMPRODUCT関数を用いて、リストの集計をしているのですが、条件を追加したいと思い、関数の修正を行ったのですが上手くいかず、こちらにて質問させて頂きたく、よろしくお願いします。

現在の関数は、
=SUMPRODUCT((J5:J399="非課税")*SUBTOTAL(9,INDIRECT("AI"&ROW(AI5:AI399))))

となっていて、
A列〜AK列の399行までの資料があります。
J列には、数字や文字が混在していますが、今までは、J列の『非課税』について集計しておりました。
合計は、SUBTOTAL関数で行っています。

上記のような関数から、J列のもう一つの条件『60非課税』を追加したいのです。単純に

=SUMPRODUCT((J5:J399="非課税")*(J5:J399="60非課税")*SUBTOTAL(9,INDIRECT("AI"&ROW(AI5:AI399))))

にしても、正しく動きません。
アドバイスをお願いいたします。

< 使用 Excel:Excel2003、使用 OS:Windows7 >


 =SUMPRODUCT(((J5:J399="非課税")+(J5:J399="60非課税"))*SUBTOTAL(9,INDIRECT("AI"&ROW(AI5:AI399))))
 ということ?
(bi) 2017/05/12(金) 09:37

 =SUMPRODUCT((J5:J399={"非課税","60非課税"})*SUBTOTAL(9,INDIRECT("AI"&ROW(AI5:AI399)))) 
 でも。
(ねむねむ) 2017/05/12(金) 09:50

bi様

コメントありがとうございます。
早速修正してみました。
『60非課税』についてはうまく作動し、答えが出ました。
(※そのときのAI列は1,264,814)

その他も上手く作動するのか試してみましたが、同じくJ列を『60非課税』から単純に『非課税』に変更してみると、答えは『1』になってしまいました。

ねむねむ様

 =SUMPRODUCT((J5:J399={"非課税","60非課税"})*SUBTOTAL(9,INDIRECT("AI"&ROW(AI5:AI399)))) 
は数式が正しくありませんとポップアップが出てしまいました。

複数条件の関数のはずですから、出来ると思うのですが、何がいけないのでしょうか??
(とも) 2017/05/12(金) 10:14


 こちらではうまくいっているのだが、もしかして 
 (J5:J399={"非課税","60非課税"})
 の部分を
 (J5:J399={A1,B1})
 のようにセル参照にしていないだろうか?
 {}の配列定数にセル参照を入れるとエラーになるが。
 (配列定数には文字列や数値しか指定できない)
(ねむねむ) 2017/05/12(金) 10:36

ねむねむ様

コメントありがとうございます。
出来ました!!
ありがとうございます。

不具合の原因は私が{}この括弧関数で使えることを知らなかった為
()に置き換えておりました。

{}使えるんですね。勉強になりました。
ちなみに、()と{}の違いは何ですか?
(とも) 2017/05/12(金) 12:46


 {}は上でも書いているが配列定数を示すもので{}内で並んでいる値全体を与えるものとなる。
 これは例えばA1セルに「非課税」、B1セルに「60非課税」と入力されている時に「A1:B1」と指定したのと同じような
 結果になる。
 また、「,」で区切ると横並び(A1:B1)、「;」で区切ると縦並び(A1:A2)を表す。
(ねむねむ) 2017/05/12(金) 13:12

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.