• 締切済み

エクセルの集計

職場で1000以上の店舗の売り上げ等を1年間の表にして下さいと言われたが、数が膨大で。 月ごとに分かれてるが、閉店したり新店があったりして、順番がちょっと、ばらばらですが、数が膨大で見つけるだけで一苦労して、一つの表にするのが非常に苦労してます。 A列に店番(4ケタの数字)があり、B列に店名があり、CDE列にその月の売り上げ等があります。 その繰り返しです、FGHIJ...。画像の通りです。 最終的にはA列に店番、B列に店名、CDH列以降は売り上げ等を記載。 なにか、いいやり方等があれば教え下さい。 何卒、宜しくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。
noname#155592
noname#155592

みんなの回答

  • tamiemon96
  • ベストアンサー率49% (658/1341)
回答No.6

データベースとして管理したうえでピポットテーブル が最も容易でか取り扱いや加工が簡単です。 表の形を次のようにしましょう。 A列 一連番号 B   年 C   月 D   日 E   店番 F   店名 G   売上金額 とにかく、「縦に長い表」になります。 この形で  店番、年、月、日 でソートをかければ、  月を基準として、エクセルの「集計」を使うだけで、店ごと、月ごとの売り上げが集計できます。 この形にしておけば、ピポットテーブルも、エクセルが要求するとおりに操作していけば、簡単に集計できますよ。 データベースの基本は、1つのデータは1行で表すことです。 

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

ピボットテーブルはその技術が無ければ対応は難しいですね。しかもデータが新たに追加されたら再度その操作を繰り返すことが必要となりますね。 関数で処理することでデータは即座に結果の表に反映されます。少し複雑な関数になりますが次のようにすればよいでしょう。 例えばシート1にはお示しのような表が入力されているとします。 そこでお求めの表ですがシート2に表示させることにしてA1セルには店コード、B1セルには店名、C1セルには金額2011/1月・・・・の文字列が入力されているとします。またA2セルから下方には店コードが予め1111などのように入力されているとします。 初めにC2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(INDEX(Sheet1!$A:$BH,MATCH($A2,INDEX(Sheet1!$A:$BH,1,MATCH(C$1,Sheet1!$1:$1,0)-2-MOD(COLUMN(A1)-1,3)):INDEX(Sheet1!$A:$BH,2000,MATCH(C$1,Sheet1!$1:$1,0)-2-MOD(COLUMN(A1)-1,3)),0),MATCH(C$1,Sheet1!$1:$1,0)),"") その後にB2セルには次の式を入力して下方にドラッグコピーします。 =IFERROR(INDEX(Sheet1!A:KM,MATCH(A2,INDEX(Sheet1!A:BH,1,MATCH(INDEX(C$1:AL$1,1,MIN(IFERROR(INDEX(MATCH("*1*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*2*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*3*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*4*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*5*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*6*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*7*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*8*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*9*",C2:AL2&"",0),),100))),Sheet1!$1:$1,0)-2):INDEX(Sheet1!A:BH,2000,MATCH(INDEX(C$1:AL$1,1,MIN(IFERROR(INDEX(MATCH("*1*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*2*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*3*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*4*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*5*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*6*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*7*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*8*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*9*",C2:AL2&"",0),),100))),Sheet1!$1:$1,0)-2),0),MATCH(INDEX(C$1:AL$1,1,MIN(IFERROR(INDEX(MATCH("*1*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*2*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*3*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*4*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*5*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*6*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*7*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*8*",C2:AL2&"",0),),100),IFERROR(INDEX(MATCH("*9*",C2:AL2&"",0),),100))),Sheet1!$1:$1,0)-1),"")

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.4

#1さんのご回答のとおりピボットテーブルが圧倒的に早いです。 前準備として各月のデータを縦に並べる必要があります。これは別シートにコピペなりでやってください。 この場合、見出し行は1月分の1行だけで充分です。 つぎにその別シートのデータの入力されている領域を選択して 「挿入」-「ピボットテーブル」をクリック 現れたピボットテーブルのフィールドリストで 「月」を「列ラベル」にドラッグ 「店番」を「行ラベルにドラッグ 「店名」を「行ラベルにドラッグ 「金額1」を「Σ値」にドラッグ 「金額2」を「Σ値」にドラッグ 「金額3」を「Σ値」にドラッグ これで縦横の集計表が表示されます。 このときΣ値が「データの個数」となっているときは、その右にある▼をクリックして、「値フィールドの設定」をクリックし、現れたダイアログで「合計」をクリックしOKをクリック。 これで縦横集計表ができあがりますが、この表をさらに編集したいときは、シート全体を別シートに「値貼付」すれば自由に編集できます。 説明が不十分で少し試行錯誤されるかもしれませんが、もし、ピボットテーブルを未体験ならこの機会にマスターしてください。今後ずっと役に立つはずです。

回答No.3

こんにちは No2です。 ちょっと補足しときますね。 先ほどのはシートを別にした場合のやり方なので、同じシートでやる場合は、 気を付けてください。 もう少し具体的に書くと C20に=SUMIF($A$2:$A$15,$A20,C$2:C$15)と入力して C20からE34の範囲にコピペします。 F20に=SUMIF($F$2:$F$15,$A20,G$2:G$15)と入力して F20からH34の範囲にコピペします。 SUMIF関数の詳細は以下をURLあたりを参照してください。 http://kokoro.kir.jp/excel/sumif.html http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/sumif.htm それでは

回答No.2

こんにちは SUMIF関数を使用したらいかがでしょうか? SUMIF関数は、条件を指定して集計することができます。 店コードをキーにして売上を集計すれば簡単にできます。 書式 SUM(検索範囲,検索キー,集計範囲) 添付画像はよく見えませんが、A列に店コードがあるデータでI列に売上があり、 集計先に店コードがA列にあって、B列に集計したい場合 集計先のB列に =SUMIF(元データのA列,集計先のA2,元データのI列) のようにすると集計できます。 =SUMIF(売上データ!A:A,A2,売上データ!I:I) こんな感じですかね。 売上データと集計先(売上表)みたいにシート分けたほうが使いやすいです。 検索値と一致した行のI列をすべて集計してくれます。 あとは下方にコピペすれば終わりです。 なにかあれば補足してください。 それでは

回答No.1

  ピボットテーブルを使ってみてください たぶん、5分もあれば集計できます  

関連するQ&A

  • エクセル 集計について教えてください!

    エクセルで、特定の列に該当する条件に当てはまる数を数えたい時、 どの関数を使えばいいでしょうか。 エクセル得意な方、教えてください。 たとえば、 A列=果物名(もも、りんご、みかん、ぶどう…etc) B列=仕入れた店名(全国各地の店名) C列=仕入れた個数 D列=入荷した日にち を、日ごとに年度でまとめたエクセル表あるとします。 別シートに、 果物ごとに、月別でいくつ仕入れたか、集計したい時にはどの関数を使えばいいでしょうか。 A2、A3、…~果物名 B2行、C2行、…~各月 として、仕入れた数を合計する、という表にしたいです。 (どの店で、という条件は不要です) SUMIFSを使えばいいのかなと思ったのですが、 月別の条件になると、別の関数もいるのかとか、 ただ数を数えるなら、COUNTIFでいいのかとか、色々考えていたら、 どう組み合わせればいいかわからなくなりました…。 オートフィルタやマクロではなく、関数で作りたいのです。 教えてください。 どうぞよろしくお願いします。 ちなみに、エクセルは2010を使っています。

  • エクセルでユニーク数を求めたいです。

    初めまして。エクセルのユニーク数の求め方について質問させていただきたいです。 ある表の集計をしているのですが、 (A列)文書  (B列)ID    あいうえお   abcde かきくけこ   fghij あいうえお   klmnop あいうえお   abcde さしすせそ   amnbk さしすせそ   lrigks あいうえお   abcde かきくけこ   fghij なにぬねの  nnbkhji こんな感じに並んでいます。 この(C列)ユニーク数を求めたいです。 上記の回答ですと あいうえお→abcdeとklmnopのIDがあるので = 2 かきくけこ→fghij = 1 さしすせそ→amnbkとlrigksのIDがあるので = 2 というようにしたいのですが、 最終的には同エクセル内の別ページで (A列)文書 (B列)ユニーク数 あいうえお     2 かきくけこ     1 さしすせそ     2 なにぬねの    1 このような表にまとめたいです。 説明が下手で申し訳ありませんが、こちらで求められる関数または方法が知りたいです。 最終的にはオートフィルでユニーク数を求められる終わり方にしたいです。 ちなみに「=1/COUNTIFS(A:A,A2,B:B,B2)」こちらの関数では求められませんでした。 また、上記のグラフでピボッドで集計すると延べ数が集計されてしまうので、ユニーク数を求めたいです。 どうか、よろしくお願い致します。

  • エクセルで集計をしたいのです

    お世話になります。 Accessからエクスポートした表があります。 (集計元表) [商品名]|[支店名]|[日付]|[売上数]| 商品A|支店1|2011/08/01|6| 商品A|支店1|2011/08/05|2| 商品A|支店2|2011/08/01|3| 商品B|支店1|2011/08/01|9| 商品B|支店2|2011/08/01|1| … これを以下のように、商品毎に表にしたいのです。 (集計表:商品A) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 6 | 0 | 0 | 0 | 2 | 8 | 支店2| 3 | 0 | 0 | 0 | 0 | 3 | 合計 | 9 | 0 | 0 | 0 | 2 | 11 | (集計表:商品B) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 9 | 0 | 0 | 0 | 0 | 9 | 支店2| 1 | 0 | 0 | 0 | 0 | 1 | 合計 | 10 | 0 | 0 | 0 | 0 | 10 | 合計の行/列は最後にsumしますが、集計元表から 集計表カドの商品名、日付、支店を判別してセルに売上数を収める 手段のヒントを頂ければ幸いです。 セル関数でもVBAでもなんでも構いません。 宜しくお願いします。

  • EXCELでこんな集計はどうするのでしょうか

    商品管理の表で以下のようになっています。 A1   B1    C1     D1    E1 担当者 分類番号 商品コード 整理番号 以下各月毎の売り上げ そしてこの表は1500行程度あり、B列、C列でソートしています。 この表をB列の分類番号毎、C列の商品コード毎で各月の売上合計を上記の表のシートとは別のシートに集計したいのですが、どのようにしたらよいのでしょうか。シートをコピーして集計するのはできるのですが、そうしたら容量が(サイズが)大きくなりすぎるため、できれば避けたいと思っています。

  • EXCEL 2002 集計

    エクセル 2002 で会社の月切ごとの不良集計を1つの不良集計表にしたいのですがどうしたら良いですか、宜しくお願いいます。 4月~9月切りのファイルが3.5インチFDに入っています。 表の形式はA列に機械NOが1~15台 B列に各機の生産数  C列~J列までは不良項目が入っています、K列には不良合計 L列には不良率 上記のような内容です、宜しくお願いします。

  • エクセル:複数シートをまとめた集計方法

    店の売上管理のために以下のような表があります。 ・月ごとにシートを分けて集計(1月~12月のシート) ・各シートは、4列でそれぞれの列は、「都道府県名」「地区名」「店名」「売上」で構成。各店は「都道府県名」「地区名」「店名」の3つの情報で特定 ・行数(店数)は各月でまちまち(売上があった店のみ記載のため)ですが、数千以上は存在 ※従って地道にコピーして重複を消してという作業は非効率になってしまう。。 上記表の集計を1つのシートで次のようにまとめたいと考えています。 ・15列構成。(内訳は「都道府県名」「地区名」「店名」「1月の売上」~「12月の売上」) ・重複した行が無い。例えば1月、4月、12月と売上があった店も1行で管理したい。 以下のような手順を考えましたが、良い手順が思いつきません。そもそも実現可能かもわかっておりません。 他の方法も含めて良い案があれば教えてください。お願いします。 手順1:1月度のシートの「都道府県名」「地区名」「店名」をコピー 手順2:2月以降のシートに関しては、それ以前の月のシートには登場していない「都道府県名」「地区名」「店名」のみ追加でコピー 手順3:IFやVLOOKUP関数などを駆使して、各店舗毎の月間売上を各月のシートの売上値を参照して代入??

  • エクセルの集計について教えてください。

    レジに打ちこまれた売上データをもとに、1ケ月の売上一覧表を作成しています。 一目で売れ線がわかるように売上数の良い順位をつけています。 例) 順位  商品名  数量  単価  売上 1位    楓    100    10   1,000 2位    紅葉    30    5    150              30   10    300       計      60         450 3位    A      40   10    400       B      40   10    400 5位    銀杏    30   10    300 総合計        270          2,550 上記の元データは商品毎の売上数が自動集計されない日時明細なので、先ず、商品名毎に並び変え、売れた数量を集計させます。ここまではエクセルで行っていますが、その後、数量合計を1行に記し、不要行を削除するのを手作業で行っています。その後で数量合計の多い順に並び変えをし(旧価格・新価格があるものもあるので、売上順位としては数量は合算、しかし新価格が何ケで旧価格が何ケと表示)、仕上げに順位を加えるのも手作業で行っています。 月によってデータが膨大なことがあり、手作業での限界がきています。 どなたか良い方法をお教え頂けないでしょうか。

  • エクセルでの集計について

    エクセルでの集計について質問です。 【4月】 (営業A)              (営業B) A     B       C      D       E      F 会社名  品名   売上金額  会社名  品名   売上金額 ○○   ××   ¥10,000   □□   △△   ¥50,000 □□   ■■   ¥30,000   ★★   ○○   ¥20,000 ○○   ☆☆☆  ¥50,000   ○○   ???  ¥30,000 上記のように1枚のシートに営業さんごとに分けて月別の売上表を作っています。 最後のシートに個人ごとの年間売上げ表を作りたいのですが、 【年間合計】      (営業A)   (営業B) A      B      C       会社名  売上金額  売上金額 ○○   ¥60,000  ¥30,000 □□   ¥30,000  ¥50,000 ★★   ¥0     ¥20,000 上記のように会社名ごとに年間合計を作る場合にはどのような方法がありますでしょうか?(年間合計に品名は必要ありません) SUMIFを入力してみたら、ものすごく式が長くなってしまいました… 他に方法がありましたら宜しくお願いします。

  • エクセル集計

    エクセルで質問です。 sheet1   列   A           B 行          (名称)       (判定) 1   あいうえお        A 2   あいうえお        C 3   かきくけこ        C  4   かきくけこ        B 5   かきくけこ        B という元データがあり、みてのとおり同じ名前のものが複数あり各々で判定が違います。 次に、別のシートには(※同じシートで列をAAとしてもよいが) sheet2   列  A       B    C    D 行                判定 1             A    B    C 2   あいうえお    1         1 3   かきくけこ         2    1 という具合に、A列には名前が複数あってもひとつとしその右側に判定の種別ごとに数を記入する。 という集計表を作成したいのですが、どなたか教えてください。 ちなみにマクロはできませんのであしからず・・・・

  • エクセルVBAで、二次元集計を行う方法

    A列      B列      C列 「日付」  「売上」  「商品番号」 1月10日   12,000    1AD 1月10日   12,000    1AD 1月18日    5,000    5AC 1月20日   12,000    1AD 1月21日    8,000    3BA         ・         ・         ・ のようなシートがあります。データ数は、60,000行以上 あります。これを日付と商品番号の2段階でソーティングして、次のような集計表をいかに簡単に作れるか考えています。 A列     B列     C列    D列       「1AD」   「3BA」  「5AC」 1月01日   1月02日            ・            ・            ・ 1月18日            ・            ・            ・ 各セルには、それぞれ日付/商品番号ごとの平均値が 入るようにしたいのですが、自身で色々探しましたが、 なかなか良いアイデアがえられませんでした。 そこで、どなたかご存知の方がおられましたら、 回答お願い致します。

専門家に質問してみよう