• ベストアンサー

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

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

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

  • ベストアンサー
noname#64582
noname#64582
回答No.2

関数で比較的簡単に出来ると思いますよ。 >各店は「都道府県名」「地区名」「店名」の3つの情報で特定 まず、店名は一意的ではないのですか。店名だけでは特定できない? 特定できないケースとは、以下のようなパターン。 青森県 青森市 駅前店 と 宮崎県 宮崎市 駅前店  があるとか、 静岡県 静岡市 市役所前店 と 石川県 金沢市 市役所前店 があるなどのケース。 もしこういうパターンなら、各店を一意的に判別できるキー(店番号など)を導入する必要があります。 -------------------------------------------------------------- 支店名が一意的に指定できるなら、 私なら以下のように処理します。 形式は以下を前提。 ・各月のシート名は「1月」「2月」・・・・と形式を統一。 ・「集計」シートの一行目は見出し。「都道府県名」「地区名」「店名」「1月の売上」~「12月の売上」。 A1~O1まで。 【1】「集計」シートの A列からC列に、全国の店名を全て入れる。 【2】D2セル(一番上の店の1月売上のセル)に、 =VLOOKUP($C2,INDIRECT(D$1&"!C2:D65536"),2,0) 【3】その式を縦横に引っ張ります。そしたら全店の月ごとの数字が出てきます。 【4】もし一年間全く売上のない店を省きたいなら、P列にでも合計欄を設けてフィルタリングし、0の行を削除すればいいでしょう。 ※INDIRECT関数によって、各シート名からデータを拾っています。

mirai51
質問者

お礼

INDIRECT関数、凄いですね。素晴らしい。。。 目からうろこでした。 1人で悩んでいた中、初めての投稿で緊張もあったのですが、 本当に助かりました。 質問して良かったです!感謝です!!!

mirai51
質問者

補足

説明が不足してました。すいません。 特定できないケースとは、まさにLOSSIGNORがご指摘頂いたケースです。

その他の回答 (2)

noname#246547
noname#246547
回答No.3

>=VLOOKUP($C2,INDIRECT(D$1&"!C2:D65536"),2,0) へぇ~、こんな関数あったんですね。勉強になります No.2の方法だと、店名だけで一意でないとだめなようですので、 すこし応用して、 「都道府県名」「地区名」「店名」の3つの文字列を結合した文字列が 一意になるのであれば、各月のシートの「都道府県名」「地区名」「店名」「売上」 を、「都道府県名」「地区名」「店名」、「都道府県地区店名」(この列はD。非表示かな)、「売上」 とし、列Dのセル(ここでは2行目を例とする)には、[=A2 & B2 & C2]とし、列AからCの文字列を結合した列を作っておきます。 次に、 >【1】「集計」シートの A列からC列に、全国の店名を全て入れる。 を 【1】「集計」シートの A列からC列に、全国の店名を全て入れ、かつD列に上記と同様の「都道府県地区店名」を作る そうすると、E列が売り上げになるので、ここに VLOOKUP($D2,INDIRECT(E$1&"!D2:E65536"),2,0) とすれば、出来そうです。 だけど、2月以降はじめて売り上げが発生した店がどれなのかは手動で検索になるかなぁ。 でも、集計シートにははじめからすべての店を登録しておけばいいですね。

mirai51
質問者

お礼

ありがとうございます。 No.2の方の回答と合わせて、まさに自分がやりたい事が実現できます! 大変助かりました。

noname#246547
noname#246547
回答No.1

Excelマクロのみで計算するのは無理かな。 このようなケースではExcelのVBAでプログラミングします。

mirai51
質問者

お礼

迅速なご回答ありがとうございました。 これを機にVBAの勉強も本格的にしたいと思います。