エクセルの関数で条件にあった値を合計するSUMIFというのがありますが、
2つの条件を満たす値を合計するにはどうしたらいいのですか?

例えば、A列に複数の洋服のブランド名と、B列にアイテム、C列に金額を
それぞれ重複して入力している表を元に、ブランド別にそれぞれのアイテムの合計金額を集計したいのです。
集計する表は、列の項目がブランド名、行がアイテムとなっています。
どうかよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

いろいろ方法はありますが、複数条件ですので配列数式を使ってみます。



 (1)1行目は表題がセットされている。例えばA1="ブランド名"、B1="アイテム"、C1="金額"
 (2)データは100行目まで入力されている。(A2~C100にデータが入力されていることになります)
 (3)ブランド名="あれ"、アイテム="これ" の合計金額を計算する。

として、

 =SUM(IF($A$2:$A$100="あれ",IF($B$2:$B$100="これ",$C$2:$C$100,0),0))

登録する時は、Ctrl+Shift+Enter とします。これで、配列数式として登録されます。
集計範囲を絶対番地指定にすればコピーもできます。"あれ"、"これ"は当然セル番地でもかまいません。
縦、横にアイテムとブランド名を表示しておけば参照して集計表ができます。


配列数式の作り方としては、最初に
 =IF(A2="あれ",IF(B2="これ",C2,0),0) でEnter。ファンクションキーF2で再編集します。
   ※単一セルならよく使う算式かも知れません。

 =IF(A2:A100="あれ",IF(B2:B100="これ",C2:C100,0),0) でEnter。F2でまた再編集します
   ※式の対象範囲を下に増やしていると思えば雰囲気が分かる?

 =SUM(IF(A2:A100="あれ",IF(B2:B100="これ",C2:C100,0),0)) でCtrl+Shift+Enter。
   ※IFで対象になったC列を集計している!

算式の窓には {=SUM(IF(・・・)} と表示されます。
式を編集したら再度、Ctrl+Shift+Enter で登録します。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございました。
おかげでやっと出来ました!!!
配列数式っていうんですか・・・
最初、Ctrl+Shift+Enterを忘れてて値が表示されず悩んでました。
{}で囲むのと、=で算出するのとどうして違うのでしょう・・・・
この数式はこれからも頻繁に活用すると思います。
本当にありがとうございました。

お礼日時:2001/08/03 01:04

>アドインの条件付き合計式ウィザードって、どうやってやればいいんですか?



ツール-アドインで条件付き合計式ウィザードにチェックを入れてOKボタンを押す。すると、ツール-ウィザードに条件付き合計式ウィザードが入っていますので、あとは場面の指示通りにやれば出来ると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
インストールされていなかったので追加しました。
数式の入力セルが多かったので、とても助かりそうです。
何度もありがとうございました。
またよろしくお願い致します。

お礼日時:2001/08/04 13:22

アドインの条件付き合計式ウィザードを使えば、nishi6さんの言う配列数式をもっと簡単に入力出来ますよ!

この回答への補足

回答ありがとうございます。
アドインの条件付き合計式ウィザードって、どうやってやればいいんですか?
ぜひ教えてください。

補足日時:2001/08/03 01:16
    • good
    • 0

D列に、と2つのセルを合体させた文字列を作成し、


(例、○、△は任意のセル番号)
=A○&B○   
  ・
  ・
  ・
=A△&B△
 となりますね。

で、検索条件はブランド名とアイテム名
の合体ですから、
その条件を満たすデータがAxとBxとすると、
=SUMIF(D○:D△,Ax&Bx,C○:C△)
で出てきます。
または、
=SUMIF(D○:D△,"ブランド名アイテム名",C○:C△)
でもOKです。

 いかがでしょう?
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます。
1つの文字列に合体させるなんて、考えつきませんでした。スゴイ!!!
数式も簡単になるし、新たに列を作る余裕があれば活用してみたいと思います。
本当にありがとうございました。

お礼日時:2001/08/03 01:15

関数よりも、ピボットテーブルを使えば簡単に集計できます。



メニューから → データ → ピボットテーブル・・・

で試してみてはどうですか。

この回答への補足

早速のお返事ありがとうございます。
できれば、関数でやってみたいのですが・・・・
無理でしょうか?

補足日時:2001/08/02 16:27
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【EXCEL】条件付き書式、A列、C列、D列、E列が同じ値の時にB列の背景色を変えたい

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青になると思うのですが実際の結果は画像の通りです。

先の話の通りA列、C列、D列、E列の値が同じ時だけ
B列のセルの背景を青にしたい場合はどうい数式になるのでしょうか?

すいませんが、詳しい方、数式(関数?)で説明できる方よろしくお願い致します。

追記
可能でしたらA列、C列、D列、E列が空白の時はB列の背景色をなしにしたいと思っております。
→A列、C列、D列、E列に値があって、かつ同じ値の場合のみB列の背景を青にしたいです。

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青にな...続きを読む

Aベストアンサー

AND関数を使えば判定ができるのでは?
 =AND(A2<>"",A2=C2,C2=D2,D2=E2)

A列には常に判定する数値が入っているなら「A2<>""」は不要です。

参考サイト
http://www.relief.jp/itnote/archives/003940.php

QExcel関数  A列の値とC列の値の間であればD列の値が抽出される関数

いつもお世話になっております。
F1にある数値を入れ、その数値が一覧表の中の範囲にマッチすればその数値を集計表シートのセルG1に反映したいのです。
例えば
A B C D E F G
1    1 ~ 1000  70 1200 ?
2  1001 ~ 1500  85
3  1501 ~ 2000  92
というような表があるとします。
F1に「1200」と入力するとG1には「85」と出るようにするにはG1にどのような関数を入れたらいいでしょうか。
必要があれば左の数値と~、右の数値は便宜上3列に分けて入力しています。
宜しくお願い致します。

Aベストアンサー

VLOOKUP関数でできます。

求める数値がD列にあるとします。
F1の値を $A$1:$D$3の範囲の左端の列から検索して、D列(検索範囲の4列目)の値を求めます。
セルG1に
=VLOOKUP(F1,$A$1:$D$3,4,TRUE)

一覧表を分かりやすくするために3列に分けているのだと思いますが、
値を求めるだけなら、B列、C列の「~1000」などは不要です。
B列、C列を削除して、「70,85,92・・・」をB列にしておけば
=VLOOKUP(F1,$A$1:$B$3,2,TRUE)
で求められます。

VLOOKUP関数をヘルプで参照していただくとわかると思いますが、
>TRUE を指定するか省略すると、検索値 が見つからない場合に、検索値 未満で最も大きい値が使用されます。
検索値が1200の場合、1200はA列にありませんが、1200未満でもっとも大きい値「1001」に対応する「85」が得られます。

Qエクセルの関数です。一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める。

エクセルの関数です。
一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める関数を教えてください。
添付した図で、具体的に説明します。
A列に値(時間)、B列に値があります。
この配列の中から、
F4の値(時間)と同じ値(時間)を示すA列の行から、F5の値(時間)と同じ値(時間)を示すA列の行までの中で、
F3の値と同じ値がB列にある、A列の値(時間)の内、
A列で上から最初の値(時間)
です。

min、offset、index、match を組み合わせてみるのですが、うまくいきません。
どうぞよろしくお願いします。

Aベストアンサー

こんにちは!

画像の配置でF6セルに「7」という結果が返れば良い訳ですかね?

少し長くなりますが、
=INDEX(INDIRECT("A"&MATCH(F4,A:A,0)&":A"&MATCH(F5,A:A,0)),MATCH(F3,INDIRECT("B"&MATCH(F4,A:A,0)&":B"&MATCH(F5,A:A,0)),0))
という数式を入れてみてください。

※ F3セルは質問に載っていないので余計なお世話かもしれませんが
同じようなやり方で
=MAX(INDIRECT("B"&MATCH(F1,A:A,0)&":B"&MATCH(F2,A:A,0)))
という数式になると思います。

※ エラー処理はしていません。m(_ _)m

Qエクセル関数でA列(品名)D列(金額)・・品名ごとに合計

A列に品名があり、D列に金額があります。

  A   B   C   D
1 商品1        ¥100     
2 商品2        ¥150
3 商品1        ¥100
4 商品3        ¥200
5 商品2        ¥100

求めたい答えは各商品ごとの合計金額なのですが、関数で可能ですか?(VBAになりますか?)

 商品1  ¥200
 商品2  ¥250
 商品3  ¥200

宜しくお願いします。(アクセスでやれと言われそうですが・・)

Aベストアンサー

こんにちは。

■作業列を使う方法です。

Sheet1 の F列を作業列にします。(作業列はどの列でもかまいません)

Sheet1 の F1に↓
-----------------------------------
=IF(COUNTIF($A$1:A1,A1)=1,ROW(),"")
-----------------------------------
この数式を予測されるA列の最大行までコピーしてください。
A500 までデータが入るだろうと思えば、F500までコピー。

Sheet2 の A1に↓
-----------------------------------------------
=IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!F:F,ROW(A1))))
-----------------------------------------------

Sheet2 の B1に↓
-----------------------------------------------
=IF(A1="","",SUMIF(Sheet1!A:A,A1,Sheet1!D:D))
-----------------------------------------------
上の2つの数式を、商品の種類の数+アルファ、コピーしてください。
商品の種類が最大50種類ぐらいだと思えば、50行+アルファ

作業列が目障りなら非表示にしてください。

こんにちは。

■作業列を使う方法です。

Sheet1 の F列を作業列にします。(作業列はどの列でもかまいません)

Sheet1 の F1に↓
-----------------------------------
=IF(COUNTIF($A$1:A1,A1)=1,ROW(),"")
-----------------------------------
この数式を予測されるA列の最大行までコピーしてください。
A500 までデータが入るだろうと思えば、F500までコピー。

Sheet2 の A1に↓
-----------------------------------------------
=IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(S...続きを読む

QエクセルでA列にある数字の合計が特定の数値を超えたらB列に合計を表示させるには

エクセルについての質問です。
以下の様なエクセルの表でA列の合計が、「10」を超える場合、B列に合計を表示させるには、B列にはどの様な関数を入れれば良いでしょうか。お教えください。
なお、最終行にも合計を表示です。

A列 B列
5
4 9
3
5 8
1
2
1
2 6

VBAを知らないため、何とか、関数で対応できると、大変、助かります。

よろしくお願いいたします。

右側の数字がB列の数字です。
解りにくくて、すみません。

Aベストアンサー

例示のようにならない。
B2セルに
=IF(OR(A3="",SUM(A$1:A3)-SUM(B$1:B1)>10),SUM(A$1:A2)-SUM(B$1:B1),"")
下へオートフィル

解決したいと思うなら、もう少し具体的な説明お願いします。
画面の取り込みは([Alt]+[)[PrintScreen]キーで、ペイント等で貼り付け、加工してください


このカテゴリの人気Q&Aランキング

おすすめ情報