下記のようなデータがあります。
1店名 2決算年度 3前々期売上 4決算年度 5前期売上 6決算年度 7今期売上
○○商店 2004年 150000 2005年 180000 2006年 185000
△△工業 2003年 100000 2004年 120000 2005年 135000
※データ数は約6000件程
上記のように会社の決算月などによって前々期の年度数が同じでないデータを以下のように並べたい。
店名 2003年度売上 2004年度売上 2005年度売上 2006年度売上
○○商店 150000 180000 185000
△△工業 100000 120000 135000
恥ずかしながらVBAの知識はまったくありません。
クエリなどで対応出来ないものかと思案しておりますが、何卒よろしくお願いします。
VBAの知識がなくても簡単であれば教えて下さい。
宜しくお願い致します。
列数は質問内容のの7つくらいなのでしょうか?
それならExcelで加工してやるとカンタンだと思います。
1列目:店名
2列目:決算年度
3列目:前々期売上
4列目:決算年度
5列目:前期売上
6列目:決算年度
7列目:今期売上
まずはエクスポートするなり、コピー&ペーストをするなりする。
別のシートに
【商店】【決算年度】【決算金額】という3列のデータを作成
それぞれそこに
1回目・・・1列目.2列目.3列目
2回目・・・1列目.4列目.5列目
3回目・・・1列目.6列目.7列目
と3回に分けて追加。それぞれの列にコピーする
その後は、ピボットテーブルをつかうなりすると集計できるのではないでしょうか?
上記内容【商店】【決算年度】【決算金額】のフィールドを持つワークテーブルを作成し、
1.ワークテーブルを削除(カラにするため)
2.追加クエリを実行(1列目.2列目.3列目)
3.追加クエリを実行(1列目.4列目.5列目)
4.追加クエリを実行(1列目.6列目.7列目)
以上、4つのクエリを作って、順番に実行する。
その4つをマクロでさせればワンクリックになるとおもいます。
ただし、この方法は、前々々期、前々々々期とヨコ方向にフィールドが増えていかないことが前提です。
まあ増えてたとしても、追加クエリを増やせばよいのかもしれませんが。
ご回答ありがとうございます。
質問が悪かったのかもしれません・・
上記方法で行うと3列のデータになるのではないでしょうか?
現在混在しているデータ(2002年~2006年)をそれぞれの列に振り分けたいのです。
2、3列目(2002年~2004年)4、5列目(2003年~2005年)6、7列目(2004~2006年)
これらを
1商店 22002年度売上 32003年度売上 42004年度売上 52005年度売上 62006年度売上
この5列に振り分ける方法を探しています。
複雑な抽出条件になるのでは無いかと思いますが宜しくお願いします。
※2列ずつがセットになっていますが必要なのは売上のみです、2列目に2004と入っている行の3列目を「2004年売上」に振り分けるという方法です。
前期などに捕らわれずに縦にすることを考えると楽になります。
1店名 2決算年度 3前々期売上 ○○商店 2004年 150000 △△工業 2003年 100000 1店名 4決算年度 5前期売上 ○○商店 2005年 180000 △△工業 2004年 120000 1店名 6決算年度 7今期売上 ○○商店 2006年 185000 △△工業 2005年 135000
上のようなものを作るのにUNIONクエリを用います。
UNIONクエリはSQLを直接書く必要があります。
SELECT 1店名 ,2決算年度 AS 年度,3前々期売上 AS 売上 FROM テーブル名 UNION SELECT 1店名,4決算年度,5前期売上 FROM テーブル名 UNION SELECT 1店名,6決算年度,7今期売上 FROM テーブル名;
UNIONクエリの動作結果は
1店名 年度 売上 ○○商店 2004年 150000 △△工業 2003年 100000 ○○商店 2005年 180000 △△工業 2004年 120000 ○○商店 2006年 185000 △△工業 2005年 135000
となります。
あとはクロス集計クエリにて「行見出しに店名」「列見出しに年度」「データに売上」とすれば、
お望みの形になります。
良く分かる説明ありがとうございます。
なんとかなりそうです!
何度も開けさせてしまいすみません。
ここから、このテーブルをクロス集計クエリーで
名前を
集計:「グループ化」、行列の入れ替え:「行見出し」
年度を
集計:「グループ化」、行列の入れ替え:「列見出し」
金額を
集計:「合計」、行列の入れ替え:「値」
として実行すると、名前ごとに集計し、年度ごとにヨコに並んだ結果が表示されます。
こちらこそ理解が悪くてすみませんでした。
クロス集計クエリの存在を知りませんでした!
なんとかなりそうですありがとうございます!
ご回答ありがとうございます。
前任者がその方法を使ってやっていたのですが
年に何度かこの作業をする事がありますので
アクセスか何かでマクロを作成して誰でもこの表の作成が出来るようにしたいと考えています。
このデータ以外にもいくつかアクセスで作成しているので出来ればアクセスで作成したいと考えています。
募集は継続いたします宜しくお願いします。