[[20070502140604]] 『SUMPRODUCT((A:A=1)*(B:B=1)*(C:C)) って可能です』(yy) ページの最後に飛ぶ

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

 

『SUMPRODUCT((A:A=1)*(B:B=1)*(C:C)) って可能ですか?』(yy)

   A  B  C
 1 1  0  100
 2 1  1  100
 3 0  1  100
   ・
   ・
   ・
   ・
   ・

 と言う表があります。条件で抽出してC列の合計を出したいです。
しかしこの表は、随時下に書き足されていく為、
SUMPRODUCT(($A$1:$A$3=1)*・・・・・・))
の様にA列の範囲を指定するわけには行きません。
そこで、
SUMPRODUCT((A:A=1)*・・・・・・))
としてみたんですが、エラーになりました。
書き足されていく表に対して、どの様に範囲指定したらイイのでしょうか?


 列全体が指定できないので、一行でも少なく範囲指定してください。
(みやほりん)(-_∂)b

 確か2007では可能だと思いましたが、それ以前では×ですね。
 範囲に名前を付けて、可変にしておくとか...
 (seiya)

ご回答ありがとう御座います。
「一行でも少なく範囲指定してください。」とありますが、なぜでしょうか?

 こんにちは〜♪

 こんな表にします。。。

	A	B	C	D	E	F	G
[1]	項目1	項目2	金額		項目1	項目2	金額
[2]	1	0	100		1	1	100
[3]	1	1	100				
[4]	0	1	100				
[5]							

 ★データベース関数を使ってみました。

 G2セルへ

 =DSUM(A:C,G1,E1:F2)

 ご参考にどうぞ。。。

 。。。Ms.Rin〜♪♪


 >「一行でも少なく範囲指定してください。」とありますが、なぜでしょうか? 
 
うーむ。
理由を聞かれても私がExcel関数を設計したわけではないので。
列全体を指定すると#NUM!エラーになるように設計されているとしか。
 
たいていリストの一行目は見出しなので私は2行目から最終行までを指定しています。
(みやほりん)(-_∂)b


あ 一行でも少なくってそう言う意味ですね。1〜35536行まで一杯一杯MAXに範囲指定をしてしまうとエクセルの動きがおかしくなるとか、遅くなるとか、弊害があるのかなと思ってしまいました。ありがとうございます。


 本題からは外れますが…
 =SUMPRODUCT((1:1=1)*(2:2="A")*3:3)
 と列の全指定は大丈夫なんですよね。
 (独覚)

 >エクセルの動きがおかしくなるとか、遅くなるとか、弊害があるのかなと思ってしまいました。
 Excel2007で列指定すると、こちらの貧弱なマシンでは動きが遅くなります。(-_-;)
 必要最低限の範囲を設定するのが望ましいと思いますけど・・・(Hatch)


私のPCも大したスペックではないので、遅くなりそうです。必要最低限で行きます。ありがとう御座います。(yy)

 >私のPCも大したスペックではないので.....
 エラーが出たから質問したんじゃないの?
 (seiya)

コメント返信:

[ 一覧(最新更新順) ]


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