幼稚園時代「何組」でしたか?

エクセルのデータを次のように集計したいのですが、良い方法を教えて下さい。VBAに組み込みたいのですが。
元のデータは次のような項目に分かれています。
(納入日)(契約番号)(取引先)(商品名)(数量)(金額) 
納入日毎に1件づつ入力されているのですが、これを、取引先別、商品別に数量と金額を集計したいのです。
集計項目が2項目あるため、ピボットテーブルで集計すると、1件が2行になってしまい、後の加工がしづらいのです。
今のところ、ピボットテーブルで数量と金額を別々に集計して、後でVLOOKUP等の関数を使って表を1つする事を考えているのですが、もっと良い方法をご存知ないでしょうか。

A 回答 (4件)

 VBAではないのですけど、sumif文や配列関数を使う方法もあります。



=sumif(データ範囲,検索条件,合計範囲)
という形式がsumif文になります。

また、配列関数は、
=sum(if(データ範囲=検索条件,合計範囲,""))
と入力して、shiftとctrlを押しながら、Enterを押すということで、入力します。(この際、関数の両端が{}となります)

金額欄を合計していいものやら、とか、セル構成が分かりませんので、アドバイスにとどめたいと思います。
    • good
    • 0
この回答へのお礼

早速やってみたら上手く行きました。
VBAに取り込めればそれで良かったので十分です。
こんな簡単な関数で解決できるとは、とても助かりました。
ありがとうございました。

お礼日時:2005/01/13 14:04

単純にピボットテーブルで集計項目を横に並べれば良いのではないですか?


多分集計項目の列にデータというボタンが出来ていると思うので、それを集計と書かれたセルの辺りにドラッグすれば、ご希望の形になりませんか?
    • good
    • 0
この回答へのお礼

まさにその通りでした。そんな事が出来るとは知りませんでした。
でも、やはりピボットテーブルは後の加工がしづらいので、私の考えているようにはなりませんでした。
回答ありがとうございました。

お礼日時:2005/01/13 14:19

VBAでやると言うことは、即時算出型でなく、一定時要求者起動計算型(オフラインバッチ処理)になりますが良いですか。

それを認識してますか。
関数(関数はデータの変化を見張っていて、再計算します)と違う点です。
取引先別、商品別に集計したい時は、それぞれ取引先別、商品別に作業シート上でデータをソートし、ソート後の行を1つずつ上から順次読んでコントロールブレーク(初級的なロジック)を見張って(取引先名が変わらないか聞いて)集計すれば良いです。
    • good
    • 0
この回答へのお礼

日次でバッチ処理を行いたかったので大丈夫です。
私は専門家でもなければ系統立てて勉強した事もないのでImogashiさんのお使いになっている言葉が今一つ理解できなくて申し訳ないのですが、多分仰られているような方法で作成できました。
回答ありがとうございました。

お礼日時:2005/01/13 14:14

配列関数について、過去の質問で、わかりやすく解説しているHPが検索できましたので、ついでに添付します。



参考URL:http://pc21.nikkeibp.co.jp/special/hr/
    • good
    • 0
この回答へのお礼

わざわざ追記をありがとうございます。
勉強になりました。

お礼日時:2005/01/13 14:05

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