- 締切済み
条件を指定して合計する方法を教えてください
お世話になります。 エクセル2003を利用しています。 下記の様なデータを抽出して、容量を基準にした表を作成し、どの容量の荷物が多いのかを まとめたいと思っています。 地区名称 容量(キロ) 2011/01(数量) 2011/02(数量)…… 北海道地区 4.2 15,670 19,051 関東地区 6 11,295 10,521 東北地区 20 10,355 10,418 東北地区 7 11,074 8,619 東北地区 5 10,898 16,303 ・ ・ ・ 1月 2月 3月 4月 5月 6月 4.9キロ以下 5.0キロ以上5.9キロ以下 6.0キロ以上6.9キロ以下 7.0キロ以上7.9キロ以下 8.0キロ以上8.9キロ以下 9.0キロ以上 容量に範囲を設定してまとめたいのですが、エクセル2007ではSUMIFS関数を利用して 条件を複数設定できる関数があるようですが、エクセル2003での範囲を指定して合計する方法をみつけられませんでした。SUMIFは、よく利用するのですが、今回は利用方法が違うような気がして、 別の関数(DSUM関数など)で試してみましたが、上手く出来ません。 出来れば、北海道地区の4.9以下・・・といった具合にまとめられればいいのですが、 関数に詳しい方、何卒、ご教示お願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
古いバージョンのエクセルでも使える方法は作業列を使って対応する方法です。 データベースとなる容量の区分などについてはシート2に入力するとしてA1セルから下方には 4.9キロ以下 5.0キロ以上5.9キロ以下 6.0キロ以上6.9キロ以下 7.0キロ以上7.9キロ以下 8.0キロ以上8.9キロ以下 9.0キロ以上 とA6セルまで入力し、 B1セルには0、B2セルには5、B3セルには6、B4セルには7、B5セルには8、B6セルには9と入力します。C1セルからC6セルには1から6までの数値を入力します。 データが入力されているシート1ではA2セルから下方に北海道地区、東北地区などのデータが、B2セルから下方には容量である数値が入力されているとします。 そこで作業列を作ります。例えばE2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",A2&VLOOKUP(B2,Sheet2!B:C,2,TRUE)) これで例えば北海道地区2のように容量に応じてグループ分けされます。 このE列を対象にして月毎における北海道地区2の集計をSUMIF関数で求めればよいことになります。 例えばシート3がまとめの表としてA2セルからA7セルに北海道地区、B2セルから下方に、4.9キロ以下 5.0キロ以上5.9キロ以下 6.0キロ以上6.9キロ以下 7.0キロ以上7.9キロ以下 8.0キロ以上8.9キロ以下 9.0キロ以上 が有るとして、C列が4月の集計とすればC2セルには C2セルには次のような式を入力すればよいでしょう。 =SUMIF(Sheet1!E:E,A2&INDEX(Sheet2!C:C,MATCH(B2,Sheet2!A:A,0)),シート1での4月の列) 以上は単なる例です。お役にたちましたら幸いです。
- fu5050
- ベストアンサー率28% (235/821)
一発でうまく行く関数がないときは、「とりあえず」の関数で結果を出しておき、あるシートに結果を返し、次ぎにそのシートを参照する関数を適用するなどすればよいです。 たとえば、もし、SUMIFという関数がなければIFで条件を指定し、件数か、数値かをあるシートに出し、それを合計したものを最終結果とするようにです。
補足
早々のご回答ありがとうございます。 エクセル2007の新関数SUMIFS関数に近い関数はエクセル2003ではないものか? あれば、その使い方を教えてほしいという質問でした。 お忙しいところご助言ありがとうございました。
お礼
丁寧なご回答ありがとうございます。 拝見しまして、やはり作業列を設定する方法が便利だと思いました。 =IF(B2="","",IF(B2>=9,"9",IF(B2>=8,"8",IF(B2>=7,"7",IF(B2>=6,"6",IF(B2>=5,"5",IF(B2<5,"4"))))))) といったIF関数を利用して、容量を決める作業列を作成、地区を表示している列との2列をSUMIF関数で集計したところなんとかできました。 ですが、条件を6個以上は設定出来ないと思うので、条件数を増やす場合を考慮して、ご教示頂いた方法で再作成、利用させて頂きます。 ありがとうございました。m(__)m