2016-07-05 12 views
0

Hallo. Also arbeite ich aus dem Abfrage-Editor eines PowerPivot. Ich habe zwei Tabellen im PowerPivot-Fenster, die ich mit dem Abfrageeditor auf der Registerkarte Tabelleneigenschaften bearbeite. Die Tabellen haben eine unterschiedliche Anzahl von Spalten, einige Spalten, die sie gemeinsam haben, enthalten jeweils eindeutige Spalten. Die Spalten, die sie teilen, haben identische Header-Namen. Ich möchte eine Tabelle übereinander stapeln, während ich der ursprünglichen Tabelle neue Spalten hinzufüge.Kombinieren von Tabellen mit unterschiedlicher Anzahl von Spalten, einige gemeinsam mit gleichen Header-Namen

For example:<p></p> 
 
<table><i>TableA</i> 
 
    <th>Col1</th><th>Col2</th><th>Col3</th> 
 
    <tr><td>A</td><td>B</td><td>C</td> 
 
    </tr> 
 
    </table><p></p><table><i>TableB</i> 
 
<th>Col1</th><th>Col2</th><th>Col4</th> 
 
    <tr><td>D</td><td>E</td><td>F</td> 
 
    </tr> 
 
    </table><p></p> 
 
<table><i>Combined</i> 
 
    <th>Col1</th><th>Col2</th><th>Col3</th><th>Col4</th> 
 
    <tr><td>A</td><td>B</td><td>C</td><td>-</td> 
 
    </tr> 
 
    <tr><td>D</td><td>E</td><td>-</td><td>F</td> 
 
    </tr> 
 
    <tr> 
 
    
 
    </table> 
 
<p></p>

Beispielcode:

SELECT tableA.col1, tableA.col2, tableA.col3, NULL AS col4 
FROM [tableA$] 
UNION 
SELECT tableB.col1, tableB.col2, NULL AS col3, tableB.col4 
FROM [tableB$]; 

sah ich einen Beitrag, der die NULL AS verwendet, um für die fehlende Spalte zu kompensieren (s), aber sobald ich hinzufügen, es in I Erhalten Sie die Fehlermeldung "Keine Spalten erkannt". In Wirklichkeit arbeite ich mit Dutzenden von Blättern mit Spalten von 15 bis über 70 und Zeilen von 300 bis 350k, weshalb ich PowerPivot verwenden soll.

Ich habe meine Blätter in PowerPivot importiert, indem ich eine Verbindung zum Arbeitsblatt erstellt habe.

P.S. Ich bin neu in PowerPivot und im Abfrage-Editor. Vielen Dank für Ihre Hilfe im Voraus.

Antwort

1

Ich würde verwenden, um die Power-Abfrage für diese Add-In entfernen. In Excel 2016 ist Power Query in der Datenschleife als Get & Transform enthalten.

Verbinden Sie sich mit Ihrer Datenbank und wählen Sie die 2 Tabellen. Ändern Sie die Load To Standardwerte zu Erstellen Sie nur Verbindung, und deaktivieren Sie Fügen Sie diese Daten dem Datenmodell. Dies wird 2 Abfragen erstellen.

Dann eine dritte Abfrage durch einen Rechtsklick erstellen in dem Arbeitsmappe Abfragen Bereich, um die erste Abfrage und wählt Anfügen. Wählen Sie die 2. Tabelle und Sie sind wahrscheinlich gerade fertig. Der Abfrage-Editor zeigt eine Vorschau des Ergebnisses an und Sie können Spalten nach Bedarf entfernen oder umbenennen.

Für die 3. Abfrage, ändern Sie die lädt Um zu Nur, Erstellen Verbindungseinstellung und überprüfen diese Daten In dem Datenmodell.

Neben der Notwendigkeit, komplexes SQL zu codieren und zu verwalten, fügt Power Query Ihrem Datenmodell eine Isolationsschicht hinzu. Sie können Daten aus anderen Quellen, z. B. Dateien, Web-Services, frei hinzufügen - Sie sind nicht länger auf eine einzige Verbindung beschränkt.

+0

Danke! Ich konnte die Tabellen anhängen. Eine Frage: Wird die Verbindung auch die Zeilenbegrenzung von einer Million Zeilen als normale Tabelle haben? Der Grund, warum ich versuchte, PowerPivot (neben der Analyse der Daten) zu verwenden, war so, dass es alle meine Daten im Datenmodell haben kann. – Brendan

+0

Nein, solange Sie Load To/Table nicht auswählen, wird es nur durch die normalen Power Pivot-Grenzen begrenzt, d. H. Verfügbaren Speicher, der auf etwa 3 GB beschränkt ist, wenn Sie 32-Bit-Office ausführen. –

0

Sie sollten den Alias ​​aus der zweiten Auswahl

SELECT tableA.col1, tableA.col2, tableA.col3, NULL AS col4 
FROM [tableA$] 
UNION 
SELECT tableB.col1, tableB.col2, NULL , tableB.col4 
FROM [tableB$];