[[20140829170725]] 『sumproduct関数で、フィルタ選択のみ計算したい』(かんだ) ページの最後に飛ぶ

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

 

『sumproduct関数で、フィルタ選択のみ計算したい』(かんだ)

A列:仕入先(例:東芝、日立、三菱、など)
B列:販売機(例:ヤマダ電機、ビックカメラ、ジョーシン、など)
C列:商品名(例:掃除機、洗濯機、テレビ、など)
D列:数量(例:1、2、50、100、など)
E列:販売単価(例:1000、2000、3000、など)
それぞれ、1行目に表題があり、2〜999行目がデータとします。
また、1行目にはフィルタが掛かっています。

このようなエクセルで、トータルの売上金額を求めるには、
F1セルに、=sumproduct(D2:D999,E2:E999)で求められます。
東芝だけの売上、ヤマダ電機だけの売上、掃除機だけの売上を、フィルタを絞り込んだ時に表示させたいのです。
東芝+日立の合計売上とか、東芝+日立でテレビのみの合計売上、というようなフィルタの便利な機能を使いたいです。
F1セルに、どのような関数を書けばよいのでしょうか?
F列にD列*E列の計算セルを作れば簡単な事は理解していますが、列を増やしたくありません。
(ホントはF列以降にも、仕入単価、運賃、返品率、不良率、などいっぱい列があるからです)

お手数をお掛けしますが、どなたかお分かりの方、教えてください。

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


 SUBTOTAL で計算できないでしょうか。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/subtotal.htm
(Mook) 2014/08/29(金) 18:08

返信ありがとうございます。
SUBTOTAL ですと、数量の合計と、単価の合計は出ます。
しかし求めたい売上は、それぞれの行の、数量×単価を合計したものです。
フィルタで絞りこまれたセルは1、絞り込まれず表示されないセルは0、を返すような関数があればいいのですが。
こんな関数があれば、
=sumproduct((D2:D999)*(E2:E999)*関数())で、計算できると思うのですが。。。
どなたか、教えてください。
(かんだ) 2014/08/29(金) 18:27

 >=sumproduct((D2:D999)*(E2:E999)*関数())で、計算できると思うのですが
 =SUMPRODUCT(SUBTOTAL(3,INDIRECT("D"&ROW(2:999)))*D2:D999*E2:E999)

 >F列にD列*E列の計算セルを作れば簡単な事は理解していますが
 ちなみに、回答者レベルの人は、自分の仕事ではその簡単な方法を使います。

(半平太) 2014/08/29(金) 19:35


半平太様
すごいです!
ばっちりです。
結果が得られたことに感動していますが、数式を見ても、なぜ結果が得られるのか、理解出来ずクヤしいです。
ROW関数で行数を出して、INDIRECTでD2、D3、D4、にして、SUBTOTALの3でフィルタで表示されていたら1を計算しているって事で合っていますか?
本当にすばらしいです。
ありがとうございました。
かんだ

(かんだ) 2014/08/29(金) 23:16


コメント返信:

[ 一覧(最新更新順) ]


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