2012-05-04 16:20:11 +0000 2012-05-04 16:20:11 +0000
123
123

SQLと同じようにExcelで2つのワークシートを結合するにはどうすればよいですか?

私は2つの異なるExcelファイルに2つのワークシートを持っています。両方とも名前、ID番号、および関連データのリストを含んでいます。1つは一般的な人口統計学的フィールドを含むマスターリストで、もう1つは名前とID、住所のみを含むリストです。このリストは、別のオフィスでマスターリストからパーダウンされたものです。さらに、2 番目のワークシートのアドレスフィールドと一緒にマスターワークシートの他のフィールドも結果に含めるようにしたいのです。データベースの内部結合を使えば簡単にできることはわかっていますが、Excelで効率的に行う方法がよくわかりません。Excelで2つのワークシートを結合するにはどうすればいいのでしょうか?また、マクロを必要とせずに行う方法を知っていた方が良いと思います。

回答 (10)

158
158
158
2012-05-07 09:37:24 +0000

For 2007+ use Data > From Other Sources > From Microsoft Query:

  1. choose Excel File and select your 1st excel
  2. choose columns (If you don’t see any list of columns, sure to check Options > System Tables)
  3. どのような構文がサポートされているかはわかりませんが、暗黙の結合、内結合、左結合、結合を試してみましたが、すべてうまくいきました。以下はサンプル・クエリです:
SELECT *
FROM `C:\Users\Peter\Documents\Excel-to-excel\Source_1.xlsx`.`Sheet1$` a
LEFT JOIN `C:\Users\Peter\Documents\Excel-to-excel\Source_2.xlsx`.`Sheet1$` b
ON a.col2 = b.col2
11
11
11
2013-12-09 18:20:43 +0000

受け入れられた答えをサポートします。列を選択する(列のリストが表示されない場合は、必ずオプションをチェックしてください)"

Once you select the excel file, very likely you will see this data source contains no visible tables prompt, and the available tabs and columns is none. マイクロソフト社はバグであることを認めていますが、エクセルファイルのタブは「システムテーブル」として扱われ、「システムテーブル」のオプションはデフォルトでは選択されていません。だから、このステップでパニックにならないで、あなただけの “オプション "をクリックして、 "システムテーブル "をチェックする必要があります。

9
9
9
2012-05-04 16:22:05 +0000

VLOOKUPとHLOOKUPは、一致する主キー(垂直方向または水平方向に格納されている)を検索し、'属性'列/行から値を返すために使用することができます。

7
7
7
2017-05-17 14:09:42 +0000

あなたは、Excelの新しいバージョンで利用可能なMicrosoft Power Queryを使用することができます(受け入れられた答えに似ていますが、はるかにシンプルで簡単です)。Power Queryは結合を「マージ」と呼びます。

最も簡単な方法は、2つのExcelシートをExcelのテーブルとして持つことです。次に、Excelで、Power Queryリボンタブに移動し、「Excelから」ボタンをクリックします。2つのテーブルをPower Queryにインポートしたら、1つを選択して'マージ'をクリックします。

4
4
4
2016-02-12 11:00:43 +0000

Aprillion の Microsoft Query を使った回答は素晴らしいと思いますが、私は Microsoft Access を使ってデータシートを結合してみました。

もちろん、MS Access がインストールされている必要があります。 - テーブルがどのように結合されているかを表示するために Get External Data を使用します。 - リレーションシップタイプを設定して、必要なものと一致するようにします。

3
3
3
2014-07-04 22:25:25 +0000

XLTools.netでは、特にExcelテーブルに対するSQLクエリを使用して作業するためのMSクエリのための優れた代替ツールを作成しました。それが XLTools SQL Queries です。このツールを使用すると、組み込みSQLエディタを使用してExcelワークブック内のテーブルに対して任意のSQLクエリを作成し、その結果を新規または既存のワークシートに出力するオプションを使ってすぐに実行することができます。

LEFT OUTER JOIN(RIGHT OUTER JOINとFULL OUTER JOINのみサポートされていません)を含む、ほとんどのタイプの結合を使用することができます。

ここに例を示します:

3
3
3
2012-05-04 17:29:37 +0000

あなたは、Excel内からExcelのテーブル上でSQLスタイルの結合を事前に形成することはできません。とはいえ、あなたがしようとしていることを達成するための複数の方法があります。

Excelでは、ルーベンが言うように、おそらく最高の仕事をする数式は、VLOOKUPHLOOKUPです。どちらの場合も、ユニークな行にマッチして、指定された列の値を返します。もし、"外部結合 “スタイルのテーブルが必要ならば、最初のリストにVLOOKUP式を追加して、ルックアップが見つかったかどうかをテストするためにISNAを追加します。もしExcelのヘルプで、特定のインスタンスでこれらを使用する方法について十分な詳細が説明されていない場合は、私たちにお知らせください。(Accessでは、Excelワークシートや名前付き範囲をリンクされたテーブルとしてインポートすることができます)。

2
2
2
2013-07-16 02:41:41 +0000

For Excel 2007 User: Data ➡ From Other Sources ➡ From Microsoft Query ➡ browse to the Excel file

この記事によると、XLS version 2003からのクエリを実行すると、ワークシートがSYSTEMテーブルとして扱われるため、"This data source contains no visible tables. “エラーが発生することがあります。そのため、クエリを作成する際には、"クエリウィザード – カラムの選択 "ダイアログのオプションにある "システムテーブル "にチェックを入れておくとスムーズに動作します。Microsoft Query dialog > Table menu > Joins…

元のExcelシートにデータを戻すには、Microsoft Query dialog > File menu から "Return data to Excel Sheet” を選択します。

0
0
0
2016-05-25 17:19:06 +0000

同じ問題を探していると、私は複数のExcelワークブック、csvとxmlファイルからサマリーワークブックにデータをマージするためのユーザーフレンドリーな方法だと思う RDBMerge に出くわしました。

0
0
0
2012-05-04 16:44:30 +0000

データベースに十分な知識があれば、SQL Serverを使用して両方のワークシートをLinked Serversとして接続し、T-SQLを使用してバックエンドのデータ作業を行うことができます。その後、ExcelをSQLに接続して、データをテーブル(通常またはピボット)に引き込んで終了です。また、Powerpivotの使用を検討することもできます。これにより、フラットデータベースとして使用されるExcelを含む、あらゆるデータベースソース間の結合が可能になります。