エクセルの関数で条件にあった値を合計する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と関連する良く見られている質問

Qaccess2003 クロス集計クエリに抽出条件を設定する

QNo.3495024にて、「取引先ごとの月次売上(部品別および合計)」をフォーム形式で表示する方法を質問した者です。
1)クロス集計クエリの抽出条件としてこのコンボを設定
2)フォームに置いたボタンでクロス集計クエリまたはそれをソースにした別フォームを開く
という方法を教えていただきました。

昨夜から自分なりに調べましたが、1)のクロス集計クエリに抽出条件を設定する方法がわかりません。 昨日の今日で再質問も気が引けますが、時間がないので質問させてください! ご存知の方、よろしくお願いいたします。

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

Q住所録から2つ以上の条件で抽出する関数について

Windows Excel 2003で住所録から2つ以上の条件で抽出するにはどんな関数を使えばいいですか?

例えば住所録で『TELとFAXが異なっている番号の別々のセル』と『TELとFAXが同じ番号のセル(TELとFAXが同じなのでFAXのセルは空欄)』尚且つ『Eメールのある会社名』を抽出する関数はありますか?

Aベストアンサー

どういうレベルで要っているのかわかりませんが
>関数はありますか?
単独関数ではありません。2つ以上の関数を組み合わせたり、作業列を使ったりすれば出来るといえます。
単独の関数はあるとも無いとも言えるが、該当分行がつめたカタチでは単独の関数ではありません。
該当が飛び飛びで出てよいなら、IF関数で簡単に出来ます。これわかりますね。
A1 TELNO,B1 FAXNOとして
C1に =IF(A1<>B1,A1,"") D1に=IF(A1<>B1,B1,"")  でよいわけです。
 ここの質問に出るレベルは、ほとんど関数の組み合わせが必要です。
ーー
Googleで「imogasi方式」で照会してください。条件をかけて、抜き出す課題が相当数出てきます。
回答は
A.関数の組み合わせー作業列なし
B.関数の組み合わせー作業列を使うー>Imogasi方式など
などの回答が見られます。
もちろんフィルタやフィルタオプションの設定のお勧めの回答もあるでしょう。
私見では、A.の式が理解できたら、関数は9割5分は卒業です。
関数に拘らず、データ^フィルターフィルタオプションの設定
をお勧めします。(データーフィルタではないですよ)

どういうレベルで要っているのかわかりませんが
>関数はありますか?
単独関数ではありません。2つ以上の関数を組み合わせたり、作業列を使ったりすれば出来るといえます。
単独の関数はあるとも無いとも言えるが、該当分行がつめたカタチでは単独の関数ではありません。
該当が飛び飛びで出てよいなら、IF関数で簡単に出来ます。これわかりますね。
A1 TELNO,B1 FAXNOとして
C1に =IF(A1<>B1,A1,"") D1に=IF(A1<>B1,B1,"")  でよいわけです。
 ここの質問に出るレベルは、ほとんど関数の組み合わ...続きを読む

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別シートに複数条件を選択すると抽出され合計値がでてくるような関数はありますか

毎日、以下のような作業内容が手元にくるのですが今までは手でノートに振り分け管理していたのですが、エクセルの関数で別シートに複数条件を選択すると抽出され合計値がでてくるような関数はありますか。
よろしくお願いします。

↓毎日くる作業内容です。
ex)これを日ごとにシートに入力して、別シートに項目の班替え選択→内訳選択→班長を選択→形を選択→該当する全日付から時間が抽出され合計時間がでてくる

Aベストアンサー

条件をかけるとして、条件該当の明細を必要としているのか、合計だけでよいのか、質問ではっきりしない。添付画像通常は小さくなり見にくい。
質問文に簡略化した1例(10行以内でよい)を挙げて質問すべきだ。要点を掴む能力と思考力が鍛えられる。
>ex)これを日ごとにシートに入力して、別シートに項目の班替え選択→内訳選択→班長を選択→形を選択→該当する全日付から時間が抽出され合計時間がでてくる、の部分。
4条件で加算の例か。
====
条件該当分の明細を出すなら
データーフィルタオプションの設定で出来るはず。
関数関数と言うが、エクセルは第1的には、操作の体系のソフトですよ。他シートにデータを出すのは、他シート側で操作を始めてください。
ーー
関数なら、自称「imogasi方式」で出来ると思います。
Googleで「imogasi方式」で照会すれば数百の例が出ると思います。
現データシート(Sheet1)条件該当分の行にだけ、上の行から順に連番をフリ(式の複写を使う)、他シート(Sheet2)で
Sheet2の行1に-->Sheet1の連番1の行をINDEX関数で持ってくる。
Sheet2の行2に-->Sheet1の連番2の行をINDEX関数で持ってくる。
・・以下同じ。
これを式の複写で自動で行える。
=====
合計だけで良いのなら、多分、条件が多数のものに対する合計をほしい、になり、条件値の組み合わせを手作業でセルにセットするのか、操作関数で出すのかも質問に書いてない。合計を出すより、この条件データを揃える方が、いつも言っているが、難しい。
>複数条件を選択すると抽出され合計値がでてくるような関数
これが文字通り合計計数だけでよいなら、毎日ここに質問が出る
SUMPRODUCT、SUMIFSのどちらかをつかえだけ。質問にエクセルバー順が書いてないのは、エクセルの勉強経験不足。
2007で便利な関数が出来たのは有名な話。

条件をかけるとして、条件該当の明細を必要としているのか、合計だけでよいのか、質問ではっきりしない。添付画像通常は小さくなり見にくい。
質問文に簡略化した1例(10行以内でよい)を挙げて質問すべきだ。要点を掴む能力と思考力が鍛えられる。
>ex)これを日ごとにシートに入力して、別シートに項目の班替え選択→内訳選択→班長を選択→形を選択→該当する全日付から時間が抽出され合計時間がでてくる、の部分。
4条件で加算の例か。
====
条件該当分の明細を出すなら
データーフィルタオプション...続きを読む

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エクセルにおいて複数の条件から抽出することができる関数(式)を教えてください。

皆さんどうか教えてください

エクセルにおいて複数の条件から抽出することができる関数(式)を教えてください。

400  70円  ad   6個
700  60円  da 7個  
100  30円 ad   9個
400  50円  ad   10個


などの表で、400で70円でadなものの数を求める
条件で数値を求めるにはどうすればいいのでしょうか

また条件にあったデータに6個などの数値をかけて合計した数値を求めるにはどうすればいいのでしょうか

関数でできる方法をお願いします。


あと”なおかつ”などの条件を行う関数も教えてください

どうかヨロシクお願いします。

Aベストアンサー

#4さんの回答で解決しませんか?

1行に複数のデータが入力されており、全ての列を満たす行数をカウントしたいということですか?
カウント対象が1万行あるとすると
=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)
と必要なだけ入力し、ctrlキーとshiftキーを押しながら
enterキーで式を確定して下さい。そうすると式が
{=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)}
という風な括弧で括られます。(配列数式になる)

列の条件は、数値ならそのまま、文字列なら""で囲います。
セルを指定しても構いません。
(1行目と同じ場合のみカウントという事であれば=A$1等となる)

もし、例の場合でいう400でadの場合の金額*個数を求めたいなら
(例では70円*6個+50円*10個で920円)
=SUM((A1:A10000=400)*(C1:C10000="ad")*(B1:B10000)*(D1:D10000))
をctrlキーとshiftキーを押しながらenterキーです。

後は応用です。

#4さんの回答で解決しませんか?

1行に複数のデータが入力されており、全ての列を満たす行数をカウントしたいということですか?
カウント対象が1万行あるとすると
=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)
と必要なだけ入力し、ctrlキーとshiftキーを押しながら
enterキーで式を確定して下さい。そうすると式が
{=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)}
という風な括弧...続きを読む

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条件に合うデータを抽出する関数

EXCELで、条件に合うデータを抽出し個数を表示させたいと思っています。
ただしSUMPRODUCTなどの『複数条件の設定』ではなく、『特定の文字列を除く』
という形で設定したいのですが、そのような関数はありますか?

Aベストアンサー

=COUNTIF(範囲,"<>*文字列*")
で出来ませんか?
=SUMPRODUCT(ISERROR(FIND("文字列",範囲))*1)
でも同じに出来ますけど...

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ランキング