![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
複数シートのデータを別シートに結合させたい
Excelの2つのシートに以下のようなデータがあります。
シート1 シート2
名前 金額1 名前 金額2
aaaa 100 aaaa 100
bbbb 100 cccc 200
これをシート3に新たに以下のように作りたいんです。
名前 金額1 金額2
aaaa 100 100
bbbb 100
cccc 200
シート1と2の名前は重複しているものもあり、
名前を基準にして重複しているものは、両方データを
重複してないものは、それぞれのデータのみをひろいたんですが、
件数が多いため、どのようにするのが一番効率よくできるのか
わからないんです。
Accessへシートをインポートとして、クエリでなんとか
できないものかと考えたのですが、いまいちうまくできません・・・。
元がExcelのデータなので、Excelの関数などを使って出来る方法が
あればいいんですが、ExcelかAccessで効率よく出来る方法を
教えていただけないでしょうか?
よろしくお願いします!
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは!
参考になるかどうか判りませんが・・・
質問文によるとデータ量がかなり多いようなので、あえて配列数式やSUMPRODUCT関数を使わずにやってみました。
↓の画像で説明します。
準備作業として、Sheet2のA・B列の間に1列挿入します。
まず、Sheet1のA・B列すべてをSheet3のE・F列にコピー&ペーストします。
次に先ほど1列挿入し、B列が空白になっているSheet2のA~C列のデータをSheet3の最終行以下にコピー&ペーストします。
すると画像のSheet3のE~F列のようになるはずです。
これに作業用の列を1列使います。
作業列H2セルに
=IF(COUNTIF($E$2:E2,E2)=1,ROW(),"")
という数式をいれ、オートフィルで下へずぃ~~~!っとコピーします。
結果のSheet3のA2セルに
=IF(COUNT(H:H)<ROW(A1),"",INDEX(E:E,SMALL(H:H,ROW(A1))))
B2セルに
=IF($A2="","",SUMIF($E:$E,$A2,F:F))
という数式をいれ、隣のC2セルまでコピー
最後にA2~C2セルを範囲指定し、C2セルのフィルハンドルで下へコピーすると
画像のような感じになります。
尚、名前の昇順に表示させたい場合はSheet1・Sheet2のデータをあらかじめ昇順に並び替えしておきます。
これで当方使用のExcel2003であれば約6万5000行までExcel2007であれば100万以上のデータがあっても対応できると思います。
以上、ちょっと強引な方法ですが
他に良い方法があれば読み流してくださいね。m(__)m
![「複数シートのデータを別シートに結合させた」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/667667_5497e4a37e05a/M.jpg)
画像付で教えていただきありがとうございます!
試してみたらできました。
使ったことのない関数もあるので、じっくり意味を調べて
理解しようとおもいます。
ありがとうございます。
No.3
- 回答日時:
VBAでやる課題だと思う。
ーー
関数ばかり言っているが、適した課外課題で無いと、式は複雑になって、分かりにくい場合が多い。
ーー
メニューのデーター統合の機能でやってみる。
例データ
Sheet1
氏名計数1
a11
b12
c13
e10
f5
d35
Sheet2
氏名計数2
a11
b12
c13
e10
d5
g45
両シートで行数は同じでなくて良い。内容は似た計数でもシートごとに別名をつけること。
同じ項目名にすると足されたりする。
ーーー
Sheet3で
結果を出す左上済む隅セルをA1(何処でも良いが)として選択。
データー統合
集計の方法 合計
範囲選択ボタンでSheet1のデータのある範囲A1:C7を指定。
追加ボタンクリックで
統合元ボックスにセットされる
ーー
範囲選択ボタンでSheet2のデータのある範囲A1:C7を指定。
追加ボタンクリックで
統合元ボックスににセットされる
ーー
統合元にセットれた範囲は
Sheet1!A1:B7
Sheet2!A1:B7
--
統合の基準 上端行、左端行の両方チェック
OK
結果
Sheet3
-計数1計数2
a1111
b1212
c1313
e1010
f5
d355
g-45
-は空白セル(左寄せ表示防止)。
分かりやすく教えていただきありがとうございます!
試してみたら、できました!感動です。
統合という機能で出来るんですね。
とても助かりました。
どうもありがとうございます!
No.1
- 回答日時:
シート1およびシート2ではA列に名前、B列に金外1および金額2の項目名がそれぞれ入力されておりデータは2行目から下方に入力されているとします。
それぞれのシートには作業列を設けます。
シート1のC2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"")
シート2のC1セルには次の式を入力します。
=MAX(Sheet1!C:C)
C2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(COUNTIF(Sheet1!A:A,A2)>0,"",IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,""))
そこでお求めの表ですが例えばシート3のA1セルには名前、B1セルには金額1、C1セルには金額2と項目名を入力します。
A2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。
=IF(ROW(A1)>MAX(Sheet2!$C:$C),"",IF(ROW(A1)<=MAX(Sheet1!$C:$C),IF(COLUMN(A1)<=2,INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$C:$C,0),COLUMN(A1)),IF(COLUMN(A1)=3,IF(COUNTIF(Sheet2!$A:$A,$A2)=0,"",INDEX(Sheet2!$B:$B,MATCH($A2,Sheet2!$A:$A,0))),"")),IF(ROW(A1)<=MAX(Sheet2!$C:$C),IF(COLUMN(A1)=1,INDEX(Sheet2!$A:$A,MATCH(ROW(A1),Sheet2!$C:$C,0)),IF(COLUMN(A1)=3,INDEX(Sheet2!$B:$B,MATCH(ROW(A1),Sheet2!$C:$C,0)),"")))))
教えていただき、ありがとうございます。
いろんな関数がでてきているので、じっくり意味を調べ
理解しながら、試してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) 2つの条件に合うセルにデータを転記したい 4 2022/12/02 11:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IFとIFS関数
-
Excelを無料で使うには? パソ...
-
セルの数を求めたい
-
Excelの表示についての質問
-
再質問です。マクロの修正箇所...
-
データチェックを行うエクセル...
-
エクセルで「ページレイアウト...
-
エクセルの数式バーのフォント...
-
エクセルの関数について教えて...
-
エクセルでセルに標準で入力さ...
-
Microsoft1Officeの互換ソフト...
-
シフト表をエクセルで作るとき...
-
ユーザー定義関数をアドイン登...
-
Excel VBAで全ての矢印を赤色に...
-
VBA Private Sub Worksheet_Cha...
-
2列に入っているデータを1列...
-
Excelに詳しい方! B列が「日...
-
excel2013 MonthDays 関数が使...
-
エクセルのクイックアクセスツ...
-
Excelの数式について教えてくだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報