
Windows Excel 2007にて、恐らく多く使われる作業にて、類似質問を探したのですが、見つけられなかったので、どうぞお教えください。
複数シートにある下記のようなm列×n行のデータを、経年的に1シートにまとめています。
ID 項目A(2011) 項目B(2011) 項目C(2011)
1 ○ ○ ○
2 ○ ○ ○
5 ○ ○ ○
8 ○ ○ ○
これを次のようにIDで紐付けして、横に長いシートにまとめたいと思います。例のように、個人毎のIDは一意なのですが、調査年ごとに対象は多く重なるものの、同一ではありません(一緒なら、横に貼りつけるだけで済むのですが)。
ID 項目A(2011) 項目B(2011) 項目C(2011) 項目A(2012) 項目B(2012) 項目C(2012)
1 ○ ○ ○ × × ×
3 ○ ○ ○ × × ×
5 ○ ○ ○ × × ×
9 ○ ○ ○ × × ×
今は、行挿入でIDを手作業でそろえているのですが、数千の作業なので、めちゃくちゃ時間がかかります。Access2007もありTryしたのですが、目的が果たせませんでした。Accessで行うべきであれば、カテゴリーを変えて質問を改めさせていただきます。
ひとまず、Excelでこれを行う方法をご存じの方、お教えていただけませんでしょうか。
どうぞよろしくお願いします。
No.3ベストアンサー
- 回答日時:
項目A~Cのデータが数字なら統合の機能を利用するのが簡単です。
集計シートで「データ」「統合」で各シートのデータ範囲(必要なら大きめにデータ範囲)を「追加」して統合の基準で「上端行」と「左端列」にチェックを入れ「OK」します。
関数で対応したいなら、A2セル以下に各シートの重複の無いID番号を入力し(すべてのシートの項目名を1列にコピー貼り付けして「データ」「重複の削除」をして必要なら並べ替えで「A↓Z」をクリックしてください)、B1セルから右に各年度の項目A~Cの項目名を入力しておき、B2セルに以下のような式を入力し右方向に3つ下方向にオートフィルします(Sheet1のデータを引っ張ってくる場合)。
=IFERROR(VLOOKUP($A2,Sheet1!$A:$D,MATCH(B$1,Sheet1!$A$1:$D$1,0),0),"")
貴重なご教示をいただき、どうもありがとうございました。
前の回答でVLOOKUP関数を使い、解決することはできたのですが、私が使ったことがなかった「統合」を教えていただき、視野が広がりました。確かに、とても便利でした。
どうもありがとうございました。
No.2
- 回答日時:
それぞれの年においてまとめられたデータが例えば2011のデータがシート見出しで2011のシートにあるとします。
それぞれの年のシートではA1せるにIDの項目名が有りその右の列にはいくつかの項目名が入力されており各データは2行目から下方に入力されているとします。
そこでお求めのシートですが例えばシート1とします。
A1セルにはIDの文字を入力し、その下方にIDを入力します。
ところでまとめたい年が2011年が元も古い年であるなら2011以降のデータを表示させることにしてB1セルには次の式を入力して右横方向にドラッグコピーします。
=IF(COLUMN(A1)<=COUNTA(2011!$B1:$XX1),INDEX(2011!$B1:$XX1,COLUMN(A1)),IF(COLUMN(A1)<=COUNTA(2011!$B1:$XX1)+COUNTA(2012!$B1:$XX1),INDEX(2012!$B1:$XX1,COLUMN(A1)-COUNTA(2011!$B1:$XX1)),""))
B2セルには次の式を入力し右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(OR(B$1="",$A2=""),"",IF(COLUMN(A1)<=COUNTA(2011!$B1:$XX1),IF(COUNTIF(2011!$A$2:$A$5000,$A2)=0,"",INDEX(2011!$B2:$XX5000,MATCH($A2,2011!$A$2:$A$5000,0),COLUMN(A1))),IF(COLUMN(A1)<=COUNTA(2011!$B1:$XX1)+COUNTA(2012!$B1:$XX1),IF(COUNTIF(2012!$A$2:$A$5000,$A2)=0,"",INDEX(2012!$B2:$XX5000,MATCH($A2,2012!$A$2:$A$5000,0),COLUMN(A1)-COUNTA(2011!$B1:$XX1))),"")))
早々のご教示をいただきどうもありがとうございました。
VLOOKUP関数は他で使ってはいたのですが、設定するのも大変なように思っていて、考慮していませんでしたが、ご教示により簡単に行うことができ、とても助かりました。
本当にありがとうございました。
No.1
- 回答日時:
複数シートにあるIDを一つの別シートのA列に全てコピーして貼り付けしてから、ピボッテーブルで重複を無くし、B列にVLOOKUP関数で、IDをキーにして、複数シートから2列目を抽出すれば、項目A(2011)のデータができます。
同様にC列に複数シートから3列目を抽出すれば、項目B(2011)のデータができます。以下同様に、項目C(2011) 項目A(2012) 項目B(2012) 項目C(2012)のデータを抽出してみて下さい。早々のご教示をいただきどうもありがとうございました。
VLOOKUP関数は他で使ってはいたのですが、設定するのも大変なように思っていて、考慮していませんでしたが、ご教示によりさほど大変でもないことに気づきました。次の回答者の方に補足いただき、実際簡単に行うことができました。
どうもありがとうございました。助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ画像あり】❶1つの条件...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】既存ファイルの名前...
-
【画像あり】オートフィルター...
-
エクセルの関数について
-
【マクロ】左のブックと右のブ...
-
【マクロ】元データと同じお客...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【マクロ】変数に入れるコード...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】【画像あり】ファイ...
-
エクセルの複雑なシフト表から...
-
5単位で繰り上げしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報