it-swarm.com.de

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 mit Namen, ID-Nummern und zugehörigen Daten. Eine ist eine Hauptliste, die allgemeine demografische Felder enthält, und die andere ist eine Liste, die nur Namen und ID sowie eine Adresse enthält. Diese Liste wurde von einem anderen Büro aus der Hauptliste gestrichen.

Ich möchte die zweite Liste verwenden, um die erste zu filtern. Außerdem sollen die Ergebnisse neben den Adressfeldern aus dem zweiten Arbeitsblatt auch andere Felder aus dem Master-Arbeitsblatt enthalten. Ich weiß, wie ich das mit einem Datenbank-Inner-Join sehr einfach machen kann, bin mir aber nicht so sicher, wie man das in Excel effizient macht. Wie können zwei Arbeitsblätter in Excel verknüpft werden? Bonuspunkte für das Zeigen, wie man auch äußere Verknüpfungen ausführt, und ich würde es sehr bevorzugen, zu wissen, wie man dies ohne ein Makro ausführt.

115
Joel Coehoorn

Verwenden Sie ab 2007 Data> From Other Sources> From Microsoft Query:

  1. wähle Excel File und wähle dein erstes Excel
  2. spalten auswählen
    (Wenn keine Spaltenliste angezeigt wird, überprüfen Sie Options> System Tables)
  3. gehe zu Data> Connections> [wähle die gerade erstellte Verbindung aus]> Properties> Definition> Command text

Sie können diesen Command text jetzt als SQL bearbeiten. Ich bin nicht sicher, welche Syntax unterstützt wird, aber ich habe implizite Verknüpfungen, "innere Verknüpfung", "linke Verknüpfung" und Gewerkschaften ausprobiert, 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
154
Aprillion

Unterstützen Sie die akzeptierte Antwort. Ich möchte nur "Spalten auswählen" hervorheben (wenn Sie keine Spaltenliste sehen, stellen Sie sicher, dass Sie "Optionen> Systemtabellen" aktivieren).

Sobald Sie die Excel-Datei ausgewählt haben, wird mit hoher Wahrscheinlichkeit die Eingabeaufforderung this data source contains no visible tables angezeigt, und die verfügbaren Registerkarten und Spalten sind nicht vorhanden. Microsoft gab zu, dass dies ein Fehler ist dass die Registerkarten in den Excel-Dateien als "Systemtabellen" behandelt werden und die Option für "Systemtabellen" standardmäßig nicht ausgewählt ist. Also keine Panik bei diesem Schritt, Sie müssen nur auf "Option" klicken und "System Tables" (Systemtabellen) markieren, dann sehen Sie die verfügbaren Spalten.

11
Ben Lin

VLOOKUP und HLOOKUP können verwendet werden, um nach übereinstimmenden Primärschlüsseln (vertikal oder horizontal gespeichert) zu suchen und Werte aus Attributspalten/-zeilen zurückzugeben.

8
Reuben L.

Sie können Microsoft Power Query verwenden, das für neuere Versionen von Excel verfügbar ist (ähnlich der akzeptierten Antwort, aber viel einfacher und einfacher). Power Query-Aufrufe verbinden "Zusammenführungen".

Am einfachsten ist es, Ihre 2 Excel-Tabellen als Excel-Tabellen zu haben. Wechseln Sie in Excel zur Registerkarte Power Query und klicken Sie auf die Schaltfläche "Aus Excel". Nachdem Sie beide Tabellen in Power Query importiert haben, wählen Sie eine aus und klicken Sie auf "Zusammenführen".

6
anotherfred

Sie können keine SQL-Verknüpfungen für Excel-Tabellen in Excel durchführen. Das heißt, es gibt mehrere Möglichkeiten, um das zu erreichen, was Sie versuchen.

In Excel lauten die Formeln, die wahrscheinlich am besten funktionieren, VLOOKUP und HLOOKUP. In beiden Fällen stimmen Sie mit einer eindeutigen Zeile überein und es wird der Wert der angegebenen Spalte\Zeile nach links\unten von der gefundenen ID zurückgegeben.

Wenn Sie nur ein paar zusätzliche Felder zur zweiten Liste hinzufügen möchten, fügen Sie die Formeln zur zweiten Liste hinzu. Wenn Sie eine "Outer Join" -Stiltabelle möchten, fügen Sie die Formel VLOOKUP zur ersten Liste mit ISNA hinzu, um zu testen, ob die Suche gefunden wurde. Wenn Ihnen in der Excel-Hilfe nicht genügend Informationen zur Verwendung dieser Funktionen in Ihrer jeweiligen Instanz zur Verfügung stehen, teilen Sie uns dies mit.

Wenn Sie lieber SQL 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.)

3
mischab1

Obwohl ich die Antwort von Aprillion mit Microsoft Query für ausgezeichnet halte, hat sie mich dazu inspiriert, Microsoft Access zu verwenden, um die Datenblätter zu verknüpfen, 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 Arbeitsdatenbank).
  • 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 sind.
  • Stellen Sie den Beziehungstyp so ein, dass er Ihren Wünschen entspricht (Darstellung des linken Joins usw.).
  • Erstellen Sie eine neue Abfrage, die Ihre Tabellen verknüpft.
  • Verwenden Sie External Data->Export to Excel, um Ihre Ergebnisse zu generieren.

Ich hätte das wirklich nicht tun können ohne Aprillions großartige Antwort.

3
Dizzley

Bei XLTools.net haben wir eine gute Alternative für MS Query geschaffen, um insbesondere mit SQL Queries gegen Excel-Tabellen zu arbeiten. Es heißt XLTools SQL Queries . Es ist viel einfacher zu bedienen als MS Query und funktioniert sehr 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 mithilfe des eingebetteten SQL-Editors eine beliebige SQL-Abfrage für Tabellen in Excel-Arbeitsmappen erstellen und diese sofort ausführen. Sie können das Ergebnis in ein neues oder ein vorhandenes Arbeitsblatt einfügen.

Sie können fast jeden Join-Typ verwenden, einschließlich LEFT OUTER JOIN (nur RIGHT OUTER JOIN und FULL OUTER JOIN werden nicht unterstützt).

Hier ist ein Beispiel:

XLTools SQL Queries - Query Builder

3
Peter Liapin

Für Excel 2007-Benutzer: Daten> Aus anderen Quellen> Aus Microsoft Query> Navigieren Sie zur Excel-Datei

Laut diesem Artikel kann das Abfragen von XLS-Version 2003 zu "Diese Datenquelle enthält keine sichtbaren Tabellen" führen. Fehler, da Ihre Arbeitsblätter als SYSTEM-Tabelle behandelt werden. Überprüfen Sie daher die "Systemtabellen" in den Optionen des Dialogfelds "Abfrage Wizard - Spalten auswählen", wenn Sie die Abfrage erstellen.

So definieren Sie Ihren Join: Dialogfeld "Microsoft Query"> Menü "Tabelle"> "Joins" ...

Wählen Sie "Daten an Excel-Arbeitsblatt zurückgeben" im Microsoft Query-Dialogfeld> Menü "Datei", um Daten an Ihr ursprüngliches Excel-Arbeitsblatt zurückzugeben.

2
clarkttfu

Wenn Sie mit Datenbanken vertraut sind, können Sie SQL Server verwenden, um beide Arbeitsblätter als Verbindungsserver zu verbinden, und dann T-SQL verwenden, um Ihre Back-End-Daten zu bearbeiten. Verbinden Sie anschließend Excel wieder mit SQL und ziehen Sie die Daten in eine Tabelle (regulär oder Pivot). Sie können auch Powerpivot verwenden. Es ermöglicht Verknüpfungen zwischen beliebigen Datenbankquellen, einschließlich Excel, das als flache Datenbanken verwendet wird.

0
dav

Auf der Suche nach demselben 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 zusammenfassenden Arbeitsmappe zusammenzuführen.

0
lalthomas