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

Wie verbinde ich zwei Arbeitsblätter in Excel wie in SQL?

Ich habe zwei Arbeitsblätter in zwei verschiedenen Excel-Dateien. Beide enthalten eine Liste von Namen, Kennummern und zugehörigen Daten. Das eine ist eine Hauptliste, die allgemeine demographische Felder enthält, und das andere ist eine Liste, die nur Name und ID sowie eine Adresse enthält. Diese Liste wurde von einem anderen Büro von der Hauptliste abgebaut.

Ich möchte die zweite Liste benutzen, um die erste zu filtern. Zusätzlich möchte ich, dass die Ergebnisse neben den Adressfeldern aus dem zweiten Arbeitsblatt auch andere Felder aus dem Master-Arbeitsblatt enthalten. Ich weiß, wie ich das sehr einfach mit einem Datenbank-Innen-Join machen könnte, aber ich bin mir weniger klar darüber, wie ich das in Excel effizient machen kann. Wie kann man zwei Arbeitsblätter in Excel verbinden? Bonuspunkte gibt es auch für das Zeigen, wie man äußere Verknüpfungen durchführt, und ich würde es sehr bevorzugen, wenn ich wüsste, wie man dies ohne ein Makro machen kann.

Antworten (10)

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

Für 2007+ verwenden Sie Data > From Other Sources > From Microsoft Query:

  1. wählen Sie Excel File und wählen Sie Ihre 1. Excel-Datei
  2. wählen Sie die Spalten (wenn Sie keine Spaltenliste sehen, überprüfen Sie unbedingt Options > System Tables)
  3. gehen Sie zu Data > Connections > [wählen Sie die soeben erstellte Verbindung] > Properties > Definition > Command text

Sie können nun diese Command text als SQL bearbeiten. Ich bin nicht sicher, welche Syntax unterstützt wird, aber ich habe es mit impliziten Joins, “inner join”, “left join” und Gewerkschaften versucht, die alle funktionieren. Hier ist eine Beispielabfrage:

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

Unterstützen Sie die akzeptierte Antwort. Ich möchte nur betonen: “Wählen Sie Spalten aus (wenn Sie keine Liste von Spalten sehen, stellen Sie sicher, dass Sie Optionen > Systemtabellen ankreuzen)”

Sobald Sie die Excel-Datei ausgewählt haben, werden Sie sehr wahrscheinlich die Eingabeaufforderung this data source contains no visible tables sehen, und die verfügbaren Register und Spalten sind keine. Microsoft gibt zu, dass das ein Fehler ist dass die Registerkarten in den Excel-Dateien als “Systemtabellen” behandelt werden und die Option für “Systemtabellen” nicht standardmäßig ausgewählt ist. Also keine Panik bei diesem Schritt, Sie brauchen nur auf “Option” zu klicken und “Systemtabellen” anzukreuzen, dann sehen Sie die verfügbaren Spalten.

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

VLOOKUP und HLOOKUP könnten zur Suche nach übereinstimmenden Primärschlüsseln (vertikal oder horizontal gespeichert) und zur Rückgabe von Werten aus ‘Attribut’-Spalten/-Zeilen verwendet werden.

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

Sie können die Microsoft Power Query verwenden, die für neuere Versionen von Excel verfügbar ist (ähnlich wie die akzeptierte Antwort, aber viel einfacher und leichter). Power Query ruft verbundene ‘Merges’ auf.

Am einfachsten ist es, wenn Sie Ihre 2 Excel-Tabellen als Excel-Tabellen haben. Gehen Sie dann in Excel auf die Multifunktionsleisten-Registerkarte von Power Query und klicken Sie auf die Schaltfläche ‘Aus Excel’. Wenn Sie beide Tabellen in Power Query importiert haben, wählen Sie eine aus und klicken Sie auf ‘Zusammenführen’.

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

Während ich die Antwort von Aprillion unter Verwendung von Microsoft Query ausgezeichnet finde, hat sie mich dazu inspiriert, Microsoft Access zu verwenden, um die Datenblätter zu verbinden, die ich viel einfacher fand.

Sie müssen natürlich MS Access installiert haben.

Schritte:

  • Erstellen Sie eine neue Access-Datenbank (oder verwenden Sie eine Scratch-DB).
  • Verwenden Sie Get External Data, um Ihre Excel-Daten als neue Tabellen zu importieren.
  • Verwenden Sie Relationships, um zu zeigen, wie Ihre Tabellen verknüpft werden.
  • Stellen Sie den Beziehungstyp so ein, dass er Ihren Wünschen entspricht (Darstellung der Linksverknüpfung usw.)
  • Erstellen Sie eine neue Abfrage, die Ihre Tabellen verknüpft.
  • Verwenden Sie External Data->Export to Excel, um Ihre Ergebnisse zu generieren.
3
3
3
2014-07-04 22:25:25 +0000

Bei XLTools.net haben wir eine gute Alternative für MS Query geschaffen, um insbesondere mit SQL-Abfragen gegen Excel-Tabellen zu arbeiten. Sie heißt XLTools SQL-Abfragen . Es ist viel einfacher zu benutzen als MS Query und funktioniert wirklich gut, wenn Sie nur SQL erstellen und ausführen müssen - kein VBA, keine komplexen Manipulationen mit MS Query…

Mit diesem Tool können Sie jede SQL-Abfrage gegen Tabellen in Excel-Arbeitsmappe(n) mit Hilfe eines eingebetteten SQL-Editors erstellen und sofort ausführen, mit der Option, das Ergebnis auf ein neues oder ein vorhandenes Arbeitsblatt zu setzen.

Sie können fast jede Art von Verknüpfung verwenden, einschließlich LEFT OUTER JOIN (nur RIGHT OUTER JOIN und FULL OUTER JOIN werden nicht unterstützt).

Hier ist ein Beispiel:

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

Sie können keine Verknüpfungen im SQL-Stil in Excel-Tabellen aus Excel heraus vornehmen. Es gibt jedoch mehrere Möglichkeiten, das, was Sie vorhaben, zu erreichen.

In Excel sind, wie Reuben sagt, die Formeln, die wahrscheinlich am besten funktionieren, VLOOKUP und HLOOKUP. In beiden Fällen stimmen Sie in einer eindeutigen Zeile überein, und es wird der Wert der gegebenen Spaltenzeile links unten von der gefundenen ID zurückgegeben.

Wenn Sie der zweiten Liste nur ein paar zusätzliche Felder hinzufügen möchten, dann fügen Sie die Formeln der zweiten Liste hinzu. Wenn Sie eine Tabelle im Stil einer “Outer Join”-Tabelle wünschen, fügen Sie der ersten Liste mit VLOOKUP die Formel ISNA hinzu, um zu testen, ob die Suche gefunden wurde. Wenn Ihnen die Excel-Hilfe nicht genügend Einzelheiten zur Verwendung dieser Formeln in Ihrem speziellen Fall gibt, lassen Sie es uns wissen.

Wenn Sie es vorziehen, SQL zu verwenden, verknüpfen Sie die Daten mit Ihrem Datenbankprogramm, erstellen Sie Ihre Abfrage und exportieren Sie die Ergebnisse zurück nach Excel. (In Access können Sie Excel-Arbeitsblätter oder benannte Bereiche als verknüpfte Tabelle importieren).

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

Für Benutzer von Excel 2007: Daten > Aus anderen Quellen > Aus Microsoft Query > zur Excel-Datei blättern

Laut diesem Artikel kann die Abfrage aus XLS Version 2003 einen Fehler “Diese Datenquelle enthält keine sichtbaren Tabellen” ergeben, da Ihre Arbeitsblätter als SYSTEM-Tabelle behandelt werden. Prüfen Sie daher die Optionen “Systemtabellen” im Dialogfeld “Abfrage-Assistent - Spalten auswählen”, wenn Sie die Abfrage erstellen.

So definieren Sie Ihren Join: Microsoft Abfrage-Dialog > Tabellenmenü > Verknüpfungen…

Um Daten in Ihr ursprüngliches Excel-Blatt zurückzugeben, wählen Sie “Daten in Excel-Blatt zurückgeben” im Microsoft Abfrage-Dialog > Menü Datei.

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

Auf der Suche nach dem gleichen Problem stieß ich auf RDBMerge , was meiner Meinung nach eine benutzerfreundliche Möglichkeit ist, Daten aus mehreren Excel-Arbeitsmappen, csv- und xml-Dateien in einer Zusammenfassungs-Arbeitsmappe zusammenzuführen.

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

Wenn Sie mit Datenbanken vertraut genug sind, könnten Sie SQL Server verwenden, um beide Arbeitsblätter als Linked Server zu verbinden, und dann T-SQL für die Arbeit mit Ihren Back-End-Daten verwenden. Anschließend verbinden Sie Excel wieder mit SQL und ziehen die Daten in eine Tabelle (normal oder Pivot). Sie können auch die Verwendung von Powerpivot in Erwägung ziehen; es ermöglicht Verbindungen zwischen beliebigen Datenbankquellen - einschließlich Excel, das als flache Datenbanken verwendet wird.