重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

よろしくお願いします。

今現在とあるソフトに売上データを入力していて、それをエクセルに打ち出しています。

日付、伝票番号、店名、商品名、金額と出るのですが、これを伝票番号別に売上金額の合計を出しています。(1伝票あたり2~3品の売り上げがあります)
ただ、伝票番号のみの集計は出せるのですが、それだと日付や伝票番号が記載されません。
伝票番号や日付、店名なども出せて、伝票番号毎の合計金額が出せるような式があるのでしょうか?

今現在は伝票番号毎に集計をかけて、合計が出た列を別シートに日付や伝票番号をコピーして張り付けています。
エクセル初心者なので、
すごく手間で、もし簡単に出来る方法があれば教えてください。
よろしくお願いします。。。

A 回答 (7件)

画像を添付するのを忘れていました。



また、日付などの列は適宜セルの書式を設定してください。

ちなみに、関数ではなくピボットテーブルを利用したほうが簡単に集計できますので、その方法を提示します。

その場合は、「データ」「ピボットテーブル・・・・」でウィザードを起動し、行フィールドに「日付」「伝票番号」「店名」をドラッグし、データフィールドに「金額」をドラッグします。

このテーブルの日付ごとの集計などの集計行は、その行を右クリックして「表示しない」にしてください。

これでご希望のようなレイアウトのリストが作成できますが、表示する順を変更したい場合は、その項目名の部分をドラッグすれば位置を入れ替えることができます。
「エクセルでの集計について」の回答画像4
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまって申し訳ありません。

回答頂いた通り一度やってみたものの、上手く行かず、ピボットテーブルを使ってみたところ、
希望通りの表示が出ました!
ピボットテーブルも知らなかったなんて・・・と反省しきりです。
自己流でエクセルを覚えてしまったので、これからちゃんと勉強しようと思います。
本当に丁寧に教えていただき、有難うございました。

お礼日時:2010/04/20 23:26

こんばんは!


すでに回答は出ていますので、参考程度で目を通してみてください。

↓の画像で説明させていただきます。
Sheet1に作業用の列を設けています。
作業列H2セルに
=IF(COUNTIF($B$2:B2,B2)=1,ROW(),"")
という数式を入れオートフィルで下へずぃ~~~!っとコピーします。

そして、Sheet2のA2セルに
=IF(COUNT(Sheet1!H:H)<ROW(A1),"",INDEX(Sheet1!B:B,SMALL(Sheet1!H:H,ROW(A1))))
B2セルに
=IF(A2="","",SUMIF(Sheet1!B:B,A2,Sheet1!G:G))
という数式を入れ、A2・B2セルを範囲指定し、B2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

以上、参考になれば幸いです。m(__)m
「エクセルでの集計について」の回答画像7
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。

ピボットテーブル以外で簡単に集計が出来そうですね!
でも、下の方のお返事にも書いたのですが、「なぜその式なのか?」という定義が分かっていないので、きっと応用が利かないなぁと痛感しました。
基本的なことからもう一度勉強します!

回答有難うございました!

お礼日時:2010/04/20 23:30

回答No1です。

シート1のA1セルからG1セルまでに日付、伝票番号、店名、商品名、数量、単価、金額の項目名がそれぞれあり、各データが下方に入力されているとします。

シート1では作業列としてI2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A2="","",IF(B2=B3,"",MAX(I$1:I1)+1))

シート2はまとめの表としてA1セルに日付、B1セルに伝票番号、C1セルに店名、D1セルに金額と項目名を入力します。
A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(COUNTIF(Sheet1!$I:$I,ROW(A1))=0,"",IF(COLUMN(A1)<=3,INDEX(Sheet1!$A:$C,MATCH(ROW(A1),Sheet1!$I:$I,0),COLUMN(A1)),IF(COLUMN(A1)=4,SUMIF(Sheet1!$B:$B,$B2,Sheet1!$G:$G),"")))

最後にA列を日付表示にすれば完成です。
    • good
    • 0
この回答へのお礼

お礼がおそくなってしまって申し訳ありません。

下の方が書いて下さったように、ピボットテーブルでうまく集計できました。
KURIMOTOさんが書いて下さった式は(言い訳になりますが仕事が恐ろしく忙しくて)まだ試していないんですが、時間があったら挑戦してみます。
でも、なぜこの数式で集計できるのか?となると全然分かってません(苦笑)
まずはもっと基本的なことから覚えないと駄目ですね。
本当に有難うございました!

お礼日時:2010/04/20 23:28

No3の回答(J列の数式)に誤りがありました。



J2セル(一番最初の伝票番号)には以下の式を入力します。

=MIN($B$2:$B$15)

J3セルには以下の式を入力して下方向にオートフィルしてください。

=IF(MAX($B$2:$B$15)>J2,SMALL($B$2:$B$15,1+COUNTIF($B$2:$B$15,"<="&J2)),"")
    • good
    • 0

伝票番号が数字で入力されているなら以下の関数で一覧を作成することができます(添付画像参照)。



J2セル(重複のない伝票番号を表示)
=IF(COUNTIF($B$2:$B$15,"<="&J1)<COUNT($B$2:$B$15),SMALL($B$2:$B$15,1+COUNTIF($B$2:$B$15,"<="&J1)),"")

I2セル(日付を表示)
=IF($J2="","",INDEX(A:A,MATCH($J2,$B:$B,0)))

K2セル(店名を表示)はI2セルをコピー

L2セル(合計金額を表示)
=IF(J2="","",SUMPRODUCT(($A$2:$A$15=I2)*($B$2:$B$15=J2)*($G$2:$G$15)))
    • good
    • 1

>ただ、伝票番号のみの集計は出せるのですが、それだと日付や伝票番号が記載されません。



集計にはいろいろな方法があります。
COUNTIF関数を使って集計したのでしょうか?

また、表示したい項目は日付と伝票番号だけなのでしょうか?

特定の伝票番号の日付と伝票番号は以下のようなINDEX関数を使えば表示できます(A列の日付を検索する例)。

=INDEX(A:A,MATCH(伝票番号のセル,B:B,0))

しかし、このようなケースでは「集計」の機能を利用するのが最も簡単な対応策です。

エクセルのバージョンが書かれていませんので2003までのバージョンで説明すると「データ」「集計」でグループの基準を伝票番号、集計するフィールドを「金額」にして、印刷などが目的なら、必要に応じて「グループごとに改ページを挿入する」にチェックを入れます。

もし上記の集計操作で不都合があるなら、最終的にどのようなデータにまとめたいのか、具体的に例示してください。

この回答への補足

画像を添付したんですが、ものすごく見難いですね・・・
また後で説明文載せます

補足日時:2010/04/19 12:57
    • good
    • 0

どのようなデータが表にどのように並んでいてそれをどのように整理して表示したいのかもう少し具体的に例示してください。

同じ伝票番号にいくつかの商品名があるようなのでそれらはどのように入力されているのですかね。

この回答への補足

すみません、説明不足でしたね・・・

以下のような内容になります。

日付 伝票番号 店名 商品名 数量 単価 金額
4月1日 123  大阪店 りんご  2 50 100
4月1日 123  大阪店 ばなな  3 20  60
4月1日 123  大阪店 すいか  1 100 100
4月1日 124  東京店 いちご  3 150 450
4月2日 125  北海道 かき   10 80 800
4月2日 125  北海道 もも  6 120 720
4月2日 126  名古屋 りんご  5 50 250
4月2日 126  名古屋 かき   5 80 400
4月2日 126  名古屋 りんご   2 50 100
4月3日 127  福岡店 いちご   3 150 450

このデータから各伝票番号毎に合計金額を出し、なおかつその合計金額だけのデータを表にしたいのです。
上手く説明できなくてすみません・・・

補足日時:2010/04/19 07:40
    • good
    • 0

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