[[20080613154414]] 『sumproductについて』(chizuru) ページの最後に飛ぶ

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

 

『sumproductについて』(chizuru)
 sumproductを使用して、計算がどうも合わないので性質を教えてください。

    A        B         C
 1 81A       1        100
 2 81A       2         50
 3 81B       1        200
 4 82        1         50
 5 83        1        100

 上記のような表で、A列が82以上で、B列が1である場合、C列を合計したいと思い、sumproductを使用しました。
 sumproduct((A1:A5>82)*(B1:B5=1),C1:C5)
 このように作ると、実際の計算は5行目の100だけしか該当しないはずが、
 全く違う計算をしてしまいます。

 初歩的なことで大変申し訳ありませんが、このような条件の場合どんな関数が一番適当であるか、
 SUMPRODUCTを使うのであればどうすればいいのか、ご教示お願いいたします。


 文字列はどの数字よりも大きいと判断されますので、
 (A1:A5>82では、A1:A3 もTRUEが返ってしまいます。
 結果、100+200+100=400 が返っているのだと思います。

 一例ですが、
 =SUMPRODUCT(ISNUMBER(A1:A5)*(A1:A5>82)*(B1:B5=1),C1:C5) とか。
 
(純丸)(o^-')b


 純丸さん
 知りませんでした!ありがとうございます。
 chizuru

 せっかく書いたので、そのまま載せておきます。

				↓=A1>82			
	[A]	[B]	[C]	[D]	[E]	[F]	
[1]	81A	1	100	TRUE	TRUE	100	←=D1*E1*C1
[2]	81A	2	50	TRUE	FALSE	0	
[3]	81B	1	200	TRUE	TRUE	200	
[4]	82	1	50	FALSE	TRUE	0	
[5]	83	1	100	TRUE	TRUE	100	
[6]					↑	400	←=SUM(F1:F5)
					 =B1=1		
 バラバラにして確認してみると・・・
 D列が「A1:A5>82」の部分 どの行がこの条件を満たすか
 E列が「B1:B5=1」の部分 どの行がこの条件を満たすか
 F列が、各行の積、F6がその合計です。

 81Aと言う文字は、82と言う数値より大きいので
 この行が「大きい」と見なされています。

 条件として、さらに「A列が数値の場合で!!」と言うのを
 付け加えるのが良いように思います。

 たとえば、ISNUMBER関数は
 テストの対照が数値を参照するときTRUEを返します。

 純丸さんの式と同じ式に成ります。

 (HANA)

 HANAさん
 ご丁寧にありがとうございます。
 急いでいたので純丸さんの式を丸写し、無事任務完了したところです。
 お二人の回答と解説、大変勉強になりました。
 ありがとうございました。
 (chizuru)

コメント返信:

[ 一覧(最新更新順) ]


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