こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの関数で困っています!

エクセルの関数について困っています。
現在で仕事で下記のような表を作成しています。

日付 品名  区分 個数  価格  合計

1/10 りんご  1  3  100 300
1/23 ばなな  2  2  200 400
2/20 りんご  1  2  100 200


この表でりんごはりんご、ばななはバナナで集計するには
SUMIF関数が必要とのことなので区分分けして集計してます。

さらにこれを日付分けして集計したいんです。

次にこんな表を作ろうと思っています。

月日 りんご合計 ばなな合計

1月  300  400
2月  200
3月
4月 

そのためにはSUMIF関数にさらにSUMIF関数を重ねて書かないとダメかな?と思っているんですが、どのような数式になるかわかりません。

区分分けしてかつ日付分けして集計したいのです。

この表を例にとって数式を教えていただけると助かります。

どうかよろしくお願い致します。

投稿日時 - 2010-01-06 21:02:56

QNo.5572965

すぐに回答ほしいです

質問者が選んだベストアンサー

関数で実現したいなら、SUMIF関数でもできるのでしょうが、私ならSUMPRODUCT関数を使います。

=SUMPRODUCT((MONTH(A2:A10)=1)*(B2:B10="りんご")*(F2:F10))

の式でできないでしょうか?
A列に日付
B列に品名
F列に合計
が入ってるものとしました。


本来は配列の合計を求める関数ですが、質問のような場合にも利用できるので覚えておくと便利です。

投稿日時 - 2010-01-06 22:44:27

お礼

どうもありがとうございます。
SUMPRODUCT関数ですか。早速調べてやってみます!

二つの条件付で集計というのは初めてだったのでとまどいましたがこれでなんとかなりそうです。

助かりました!

投稿日時 - 2010-01-06 23:16:30

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんばんは!
色々方法はあるかと思いますが・・・
一例です。

↓の画像で説明させていただきます。
品目が増えても良いように作業用の列を使わせてもらっています。
(今回は品目で分けていますので、区分は不必要になるかと思います)

Sheet1の作業列G2セルに
=IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"")
としてオートフィルでずぃ~~~!っと下へコピーします。

そして、Sheet2のA列の月日は単純に各月の数値だけを入力しておきます。
まず、品名B1セルに
=IF(COUNT(Sheet1!$G$2:$G$100)<COLUMN(A1),"",INDEX(Sheet1!$B$2:$B$100,SMALL(Sheet1!$G$2:$G$100,COLUMN(A1))))
として列方向へオートフィルでコピーします。

最後にB2セルに
=SUMPRODUCT((MONTH(Sheet1!$A$2:$A$100)=Sheet2!$A2)*(Sheet1!$B$2:$B$100=Sheet2!B$1),Sheet1!$F$2:$F$100)
という数式を入れ、列方向と行方向にオートフィルでコピーすると
画像のような感じになります。
尚、「0」が目障りであれば
メニュー → ツール → オプション の表示タブで「ゼロ値」のチェックを外しておきます。

尚、数式はSheet1の100行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、当方使用のExcel2003での方法でした。
長々と書きましたが、参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2010-01-06 22:37:09

お礼

非常にわかりやすい回答ありがとうございます。

まずはこれのとうりにやってみて導入できそうなら早速使ってみようと思います。

どうもありがとうございました!

投稿日時 - 2010-01-06 23:17:23

ANo.1

多分、ピボットテーブルで、そのまんまの表が出来ると思います

投稿日時 - 2010-01-06 21:29:08

あなたにオススメの質問