• ベストアンサー

【EXCEL】sumif関数の連発以外ですっきりした関数

はじめまして。いろいろ調べましたが、いい方法が見つからなかったので教えてください。EXCEL2002です。 今、以下の表があります。  A     B    C    D    E    F    G    H     I    J 1日付  商品  数量  金額  合計  |日付  商品  数量  金額  合計 2     aaa    3   12,000      |     bbb    4    20,000 3 9/1  bbb    1    5,000  24,000|9/4   ccc   5    17,500  41,500 4     ccc    2    7,000      |     aaa    1    4,000 ----------------------------------------------------------------------- 日付と金額の2~4行目は結合されています。 A~E列のブロックが右に16個あり(今は2個しか書いてませんが)、aaa商品の個数と金額を抽出したいのですが、各ブロックでsumif関数を使い、 16個合計すれば出るのですが、もっとすっきりした関数はありますでしょうか? 実はこの16個のブロックが縦にいくつもあり、関数をかなり入れてるせいかファイルサイズが大きくなってしまってるので。 宜しくお願いします。

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

  • ベストアンサー
  • goo39
  • ベストアンサー率36% (13/36)
回答No.2

SUMとIFの配列式でもすっきり出来ます。 数量は=SUM(IF(B2:BY4="aaa",C2:BZ4))を配列式にして {=SUM(IF(B2:BY4="aaa",C2:BZ4))} 金額も同様に=SUM(IF(B2:BY4="aaa",C2:BZ4*D2:CA4))の配列式 {=SUM(IF(B2:BY4="aaa",C2:BZ4*D2:CA4))}

snycom
質問者

お礼

先ほど、補足で書いたのですが、配列数式について調べてみたら、goo39さんのとおりでできました! いろいろ勉強になります。 ありがとうございました。

snycom
質問者

補足

お返事ありがとうございます。 数量の場合で、配列式にして中かっこ{}のところがわからないのですが、普通に=SUM(IF(B2:BY4="aaa",C2:BZ4))を入力してみたところ、 #VALUEになってしまいます。 ですが、数式バーの関数(fx)のところをクリックして引数をみてみると、数式の結果は正しい値が返っていました。 どうしてでしょうか?

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

範囲はA1:CB4として、 数量=SUMPRODUCT(($A$2:$BY$4="aaa")*($C$2:$BZ$4)) 金額=SUMPRODUCT(($A$2:$BY$4="aaa")*($D$2:$CA$4))

snycom
質問者

補足

お返事ありがとうございます。 SUMPRODUCT関数を使うのですね。 ですが上記のとおりにすると#VALUEになってしまいます。 どうしてでしょう?

関連するQ&A

  • ExcelのSUMIF関数についてです。

    ExcelのSUMIF関数についてです。 下記のような表を使用して、 商品コードが一致する商品数の合計をD2セルに入力したい。 (※A2,A3,A4...とA列の中でコードが一致したら、その数量の合計を出す)       A        B       C    D 1     商品コード  商品名   数量   計 2     PD0001    AAA     50 3     PD0019    BBB     20 4     PD0009    CCC     150 5     PD0001    AAA     1 6     PD1004    DDD     15 7     PD1027    EEE     50 8     PD0009    CCC     40 9     PD0019    BBB     30 :      :         :       : :      :         :       : sumif関数を使用して、 D2に =SUMIF(A:A,A2,C:C) を入力コピーすると     D     計 2   35 3    1 4   50 5   45 6    0 7    0 8    0 9    0  :    : :    : となってしまいます。     D     計 2   51 3   50 4   190 5   51 6   15 7   50 8   190 9   50  :    : :    : という出力にするにはどうしたらいいでしょうか? ちなみに、コードではなく商品名で D2に =SUMIF(B:B,B2,C:C) を入力コピーするとうまくいきます。 初歩的なことなのかもしれませんが、 商品コード数も数量もかなり膨大なものを計算するので困っています。 宜しくお願いします。

  • SUMPRODUCT関数の使い方

    A列 aaa aaa bbb bbb ccc ccc と入力して、 「aaa」の個数と「bbb」の個数の合計を求める式を教えてください。 見た限りの答えは、「aaa」が2個、「bbb」が2個で4なのですが B1に 「=SUMPRODUCT(A:A="aaa",A:A="bbb")」 としたのですが、「0」が返ってきてしまいます。 B2に 「=SUMPRODUCT(COUNTIF(A:A,"aaa"),COUNTIF(A:A,"bbb"))」 だと、 4が返ってきますが A列を aaa aaa bbb にすると「3」が返ってきてほしいのに、2になってしまいます。 個数の合計を返す関数式をご教授ください。

  • エクセル、こんな場合はどのような関数式を立てればよいでしょうか?

     会社の部材部門に勤務していますが、毎月の生産予定が下記のように組まれているとして      A   B   C   D   E 1 商品  台数  品番 2製品1  80  AAA 3製品2 100  BBB 4製品3  50  AAA 5製品2 200  AAA 6製品4 150  CCC 7製品1  40  AAA 8製品5  60  AAA 9製品2 180  BBB   ↓   ↓        のような配列で作られていて、仕事の都合上から以下のように品番が切り替わるごとにC列品番をキーワードにD列に累計合計を表示させたいのです。同じ品番が連続したり、1行のみや、細かく切り替わったり、不規則です。      A   B   C   D   E  1 商品  台数  品番  累計  2製品1  80  AAA  80  3製品2 100  BBB 100  4製品3  50  AAA  50  5製品2 200  AAA 250  6製品4 150  CCC 150  7製品1  40  AAA  40  8製品5  60  AAA 100  9製品2 180  BBB 180 10製品6 400  BBB 580 11製品2 350  BBB 930  SUMIF関数,SUM関数をIF関数にネストして式を作るような気がしているのですが、単純に条件に合うものの合計ならSUMIF関数または集計機能で求められますが、品番が替わる地点で、条件に合う品番のそこからの累計を求め、表示させる式が導けません。=IF(AND(C2<>C3)(B2>0),SUMIF($C$2:C2,C2,$B$B2:B2))のような式を組みましたが、B2からのトータル累計が出て、思うようにいきませんでした。どなたか教えていただけないでしょうか?

  • 検索条件が複数ある時のSUMIF関数

    エクセルです。 AAA会社     パソコン   100,000 AAA会社   プリンタ   200,000 BBB会社   プリンタ   300,000 このような表があり、 「AAA会社」の「パソコン」の合計金額が知りたい場合、 どのような関数にすればいいのでしょうか? E1、F1にそれぞれ「AAA会社」「パソコン」を入れた場合 =SUMIF(A1:C3,E1,C1:C3)だと、E1の条件しか抽出できません。

  • SUMIFの代用

    お世話になります。 ファイル2からファイル1へリンクして計算をしてますが、同時に開いてないと更新されない(VALUE)となるため調べましたら、SUMIF・COUNTIF関数はこのような現象が発生するということでした。 ファイル1はSUMIFを多用しており納得はしましたが、SUM+IFに置き換えれば良いとのことで試しましたが、計算結果がうまくでません。 ファイル1:抜粋    A   B   C 1  12/1  AAA  100 2  12/2  AAA  200 3  12/3  AAA  300 4  12/4  AAA  400 5  12/5  BBB  500 というデータがあります。A:日付 B:コード C:数量 ファイル2表にてAAAの合計数量を出したいのですが、 SUMIF([ファイル2.XLS]sheet1!$B:$B、(ファイル1のコード入力セル)、[ファイル2.XLS]sheet1!$C:$C) にてできるのですが、ファイルを同時に開かずに行いたいのです。 SUM(IF([ファイル2.XLS]sheet1!$B:$B=(ファイル1のコード入力セル)、[ファイル2.XLS]sheet1!$C:$C、0)) に置きかえてもうまくでません。 どなたかアドバイスをお願いいたします。

  • Excel2002:複数条件のデータの個数の集計

    苦手な集計について質問させてください。 [A] [B] [1] AAA aaa [2] BBB bbb [3] AAA aaa [4] AAA bbb [5] BBB ccc 上記のようなデータで[A]と[B]のAND条件でみたときの個数を集計したいと思います。 例えば上記であれば、 [A]AAAかつ[B]aaa・・・2個 [A]BBBかつ[B]bbb・・・1個 [A]AAAかつ[B]bbb・・・1個 [A]BBBかつ[B]ccc・・・1個 になります。[B]のデータは[A]のデータに依存せず、[A]の各値にまたがっています。([B]bbbは[A]AAAと[A]BBBの場合があります) 実際のシートでは、全パターンを網羅したリストがA列とB列、集計対象がD列とE列にあります。 上記の例でいえば、以下のようになっています。 [A] [B] [C] [D] [E] [1] AAA aaa AAA aaa [2] AAA bbb BBB bbb [3] BBB bbb AAA aaa [4] BBB ccc AAA bbb [5] BBB ccc つまり[A]列と[B]列が組み合わせパターン、[D]列と[E]列が集計元データです。 ちなみにパターン数が414個、集計元データは29000個程度です。 そして最終的な各パターンの個数を[C]列に表示させたいと思います。 VLOOKUPやピボットテーブルを考えましたが、ピンと来ません。 適切なやり方を教えてください。よろしくお願いします。

  • 【Excel】条件を満たすデータをまとめる

    Excel2003を使用しています。 《表1》 日付       コード  社名   受注番号  金額 2012/04/30   100   AAA   123-45   10000 2012/05/31   100   AAA   123-45   15000 2012/06/30   100   AAA   120-56   10000 2012/05/31   101   BBB   121-44   20000 2012/06/30   101   BBB   123-45   20000 2012/04/30   102   CCC   124-40   30000 2012/06/30   102   CCC   124-40   10000 2012/07/31   102   CCC   124-40   10000 《表1》で、コードと受注番号の両方が同じ場合、その金額を合計して1行にまとめ、《表2》のようにしたいです。 日付は新しいほうを残したいのですが、可能でしょうか? 《表2》 日付        コード  社名   受注番号  金額 2012/05/31    100   AAA   123-45   25000 2012/06/30    100   AAA   120-56   10000 2012/05/31    101   BBB   121-44   20000 2012/06/30    101   BBB   123-45   20000 2012/07/31    102   CCC   124-40   50000 《表2》の状態からさらに他のデータと比較して転記したく、最初はピボットテーブルを使用してみたのですが、使い慣れていないせいか、うまくいかず…。 できれば、VBAか関数で《表2》のようにしたいです。 よろしくお願いします。

  • EXCEL関数

    お世話になります。 現在、EXCEL関数で悩んでおります。 例えば       売上ランク   数量  単価 商品A    B       20    300 商品B    C       10    520 商品C    A       72    430 商品D    A       53    290 商品E    B       31    330 をEXCELに入力をしているとします。 このデータをABCランク毎に集計し、売上金額を自動計算したいと考えています。 SUMIFでは個々の数量や単価の集計はできますが、どのようにすればランク毎の売上金額を計算できますでしょうか? 決算時期に近付いており、膨大なデータを効率的に集計したいので、ご存じの方がいらっしゃいましたらご教授ください。 ※データからAランクだけを抽出し、その数量と金額の合計を出したいです。 よろしくお願いいたします。

  • SUMIF関数で分からないところがあります。

    エクセルのSUMIF関数の例題で分からないところがあります。 =SUMIF(A:A,"<=&D2,B:B) A列に日付(2017/12/05,,2017/11/30など) B列に金額(500,100,300など) D列に末日(2017/11/30,2017/12/31など) が入力されています。 A列に入力された日数からD列の末尾までの合計を求めるプログラムだとお思うのですが、 なぜ、Dの前に&が付くのでしょうか? 教えてくださいよろしくお願いします。

  • SUMIF関数

    1月1日 100 日付をA列1-10行 数をB列1-10行 1月2日 200 (略) 1月10日 1000 これで 1月4日~1月7日までの 合計SUMIFで求めるとき、 =SUMIF(A1:A10,">=1/4",B1:B10)-SUMIF(A1:A10,">=1/7",B1:B10) と 数式立てました。が答えは 2月8日 と返ってきました。 そこで 質問ですが SUMIF関数は 複数の数式には対応しないのでしょうか?(1月4日以降の合計から 1月7日以降の合計を引いて 1月4日~1月7日 を求める方法) 教えて 下さい。お願い いたします。 エクセルは2002です。 なお、自分 先日COUNTIF で質問して、そのとき 教えてもらった 数式が そのまま流用できそうな 感じがして SUMIF関数に 置き換えて みたら数値が欲しいのに、日付が 返ってきた しだいです。 http://www.okweb.ne.jp/kotaeru.php3?q=339430 お願いいたします。 最近、関数が 難しいですが がぜん 面白くなってきて、参考書を読んで 実践して つまずくと ここに 頼って きてしまいます。

専門家に質問してみよう