• ベストアンサー

エクセル関数 複数の条件に合う合計の出し方を教えてください。

Sumifの使い方は解かるのですが、条件をもうひとつ増やした上で合計を出すにはどうすればいいのですか? たとえば・・・ ・列A~Dにそれぞれ「月」「日」「項目」「金額」を入れます。 ・月はもちろん12月まで、項目は消耗品ほか何十種類もあり、購入した物を、月や項目に分けずどんどん記入する。(月別の表にすれば簡単なのはわかっているのですが、とにかく今回は1つの表にまとめたいのです!) ・別のシートに1月から12月まで各項目ごとに合計を出す。 そこで、 1「月」の 消耗品「項目」の合計を出す関数を教えてください。  説明が下手ですみません。解からない所は後で補足しますので、お願いします。

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

  • ベストアンサー
回答No.7

配列数式を使うのがいいと思いますが、 前に同じような質問があったので、 参考にして下さい。 質問の例だと A列が1で、C列が消耗品の場合の、D列の合計 という式を作ればいいわけです。 データが2行目から100行目まであると仮定すると、 {=sum(if($A$1:$A$100=1,if($C$1:$C$100="消耗品",$D$1:$D$100,0)))} 最後の0は「それ以外のものを0としてその合計をだせ」です。 普通に「=」から最後の「)」までを入力し、 shiftキーとCtrlキーを押しながら、Enterキーを押すと、 { }で囲まれます。 「=1」や「="消耗品"」のところはセル指定でもできます。 たとえば、表頭に項目、表側に月があれば、そのセルを指定し、下にコピーしてあげれば一発で集計できます。 数式の中の範囲指定に$がつけてあるのは、絶対参照にするためですので、念のため。 下や横にコピーしたときにずれていかないためです。 試しにはずしてやってみてください。 1行、1列ずつすれていくはずです。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=878939

その他の回答 (6)

  • banzaiA
  • ベストアンサー率16% (100/595)
回答No.6

#5です。 ウィザードでできませんか? 1 ピボットテーブル/ピボットグラフウィザード-1/3   Excelのリスト/データベース とピボットテーブルをチェックして次へ。 2 処理する範囲を指定します。 次へ 3 テーブルの作成先を指定して 完了 そうすると 項目を表示した小さなボックスが表示されそこからシートのそれぞれにドラッグします 4 上の横長の部分(列)に 月をドラッグ 5 行のフィールドに  項目 をドラッグ 6 金額を右下の広いところにドラッグ これで出来上がると思いますが。 やってみてください

  • banzaiA
  • ベストアンサー率16% (100/595)
回答No.5

私は、ピボットテーブルを使いますが。

guchan00001
質問者

お礼

ありがとうございます。 ウィザードでやってみました。 さっぱりわかりません・・・^^;

  • alba0910
  • ベストアンサー率29% (12/41)
回答No.4

ツール⇒ウィザード⇒条件付合計式を使うと簡単です。 ウィザードがない場合は、ツール⇒アドインで、条件付合計式ウィザードにチェックを入れます。

guchan00001
質問者

お礼

アドインで、チェックを入れたらインストールされてないと表示が出てしましました。 何とかできるようになりましたのでありがとうございました。

  • boy_boy
  • ベストアンサー率55% (56/101)
回答No.3

こんにちは。 >答えは0 月の部分が数値入力だと勝手に判断してしまいましたが 実際には「月」の入力はどうされていますか?

guchan00001
質問者

お礼

月項目には数値のみ入力しています。 気になってもう一度、やってみたところちゃんと計算できました。 さっきはどこか間違っていたみたいです。 教えていただいたのにあわててすみませんでした。

回答No.2

別に、無理して1つのセルで計算を終えなくても良いんですよ。 例えば、 A  B  C    D   E F G H I J ... 月 日 項目  金額 1 2 3 4 5 6  1  12 備品  1000 2  20 消耗品  500 2  22 消耗品  250 1  15 設備費  100 3  1  備品   800 5  5  工事費  200 4  12 備品   30 3  30 消耗品  10 2  16 備品   100 2  5  設備費 1500 1  8  備品   300 で、E列以降に1月、2月、3月、...の予備のセルを用意しておき、そこに、 =if(C3="消耗品",D3,"") のようにしておきます。 そして、E列の合計を好みの場所で求めればいいのです。 空いているに、途中経過の計算や関数の結果を入れておくのは、恥ずかしいことではありません。 こうすれば、途中経過も見えてきますので、どこで計算に失敗したかも見えてきます。 こういっちゃ何ですが、広大なExcelのシートを全て使い切っているなんて事はないと思います。

guchan00001
質問者

お礼

さっそくのお返事ありがとうございます。 沢山のセルをうまく活用すればいいのですね。つい、関数、関数・・・と思ってしまいました。 先ほどやってみました。計算をさせている所は隠してしまいましたので、とてもすっきり、思い通りになりました。 また機会がありましたら、よろしくお願いします。

  • boy_boy
  • ベストアンサー率55% (56/101)
回答No.1

こんにちは。 =SUMPRODUCT((セル範囲=1)*(セル範囲="消耗品"),合計範囲) の様な感じにします。 ※範囲は列単位では指定出来ません。

guchan00001
質問者

お礼

さっそくのお返事ありがとうございます。 書いていただいた式をコピーして貼り付け、必要な所を書き直してみました。エラーにはなりませんでしたが、答えは0。入力が済んでいるので0であるはずは無く、何がおかしいのかいろいろやってみましたがだめでした。 でも、SUMPRODUCTは是非使ってみたいので、勉強してみます。 ありがとうございました。

関連するQ&A