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

Come posso unire due fogli di lavoro in Excel come farei in SQL?

Ho due fogli di lavoro in due diversi file Excel. Entrambi contengono un elenco di nomi, numeri identificativi e dati associati. Uno è un elenco principale che include campi demografici generali, e l'altro è un elenco che include solo nome e id, e un indirizzo. Questa lista è stata ridotta dalla lista principale da un altro ufficio.

Voglio usare la seconda lista per filtrare la prima. Inoltre, voglio che i risultati includano altri campi del foglio di lavoro principale accanto ai campi dell'indirizzo del secondo foglio di lavoro. So come potrei farlo molto facilmente con un'unione interna al database, ma sono meno chiaro su come farlo in modo efficiente in Excel. Come si possono unire due fogli di lavoro in Excel? I punti bonus per mostrare come fare anche le giunzioni esterne, e preferirei molto di più sapere come farlo senza bisogno di una macro.

Risposte (10)

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

Per il 2007+ usa Data > From Other Sources > From Microsoft Query:

  1. scegli Excel File e seleziona il tuo 1° excel
  2. scegli le colonne (se non vedi nessuna lista di colonne, assicurati di controllare Options > System Tables)
  3. scegli le colonne . vai a Data > Connections > Properties > [scegli la connessione appena creata] > Definition > Command text > Command text

Ora puoi modificare questo &007 come SQL. Non sono sicuro di quale sintassi sia supportata, ma ho provato le unioni implicite, “inner join”, “left join” e le unioni che funzionano tutte. Ecco una query di esempio:

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

Sostenere la risposta accettata. Voglio solo sottolineare su “scegliete le colonne (se non vedete nessuna lista di colonne, assicuratevi di controllare Opzioni > Tabelle di sistema)”

Una volta selezionato il file excel, molto probabilmente vedrete il prompt this data source contains no visible tables, e le schede e le colonne disponibili non saranno più disponibili. Microsoft ha ammesso che è un bug che le schede nei file excel sono trattate come “Tabelle di sistema”, e l'opzione per “Tabelle di sistema” non è selezionata di default. Quindi non fatevi prendere dal panico in questa fase, basta cliccare su “option” e selezionare “System Tables”, poi si vedranno le colonne disponibili.

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

VLOOKUP e HLOOKUP possono essere usati per cercare le chiavi primarie corrispondenti (memorizzate verticalmente o orizzontalmente) e restituire i valori delle colonne/righe degli “attributi”.

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

È possibile utilizzare Microsoft Power Query, disponibile per le versioni più recenti di Excel (simile alla risposta accettata, ma molto più semplice e facile). Power Query chiama si unisce a ‘si fonde’.

Il modo più semplice è quello di avere i vostri 2 fogli Excel come tabelle Excel. Poi in Excel, andate alla scheda del nastro Power Query e cliccate sul pulsante ‘Da Excel’. Una volta importate entrambe le tabelle in Power Query, selezionatene una e cliccate su ‘Unisci’.

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

Anche se penso che la risposta di Aprillion usando Microsoft Query sia eccellente, mi ha ispirato a usare Microsoft Access per unire le schede tecniche che ho trovato molto più facile.

È necessario avere MS Access installato naturalmente.

Passi:

  • Creare un nuovo database Access (o usare un DB scratch).
  • Usare Get External Data per importare i dati Excel come nuove tabelle.
  • Usate Relationships per mostrare come le vostre tabelle sono unite.
  • Impostate il tipo di relazione in modo che corrisponda a quello che volete (che rappresenta l'unione a sinistra, ecc.)
  • Create una nuova query che unisce le vostre tabelle.
  • Usate External Data->Export to Excel per generare i vostri risultati.

Non avrei potuto farlo senza la grande risposta di Aprillion.

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

In XLTools.net abbiamo creato una buona alternativa per MS Query per lavorare soprattutto con le query SQL contro le tabelle Excel. Si chiama XLTools SQL Queries . È molto più facile da usare piuttosto che MS Query e funziona molto bene se si ha solo bisogno di creare ed eseguire SQL - nessun VBA, nessuna manipolazione complessa con MS Query…

Con questo strumento è possibile creare qualsiasi query SQL contro tabelle in cartelle di lavoro Excel utilizzando l'editor SQL incorporato ed eseguirlo immediatamente con l'opzione di mettere il risultato su un nuovo o qualsiasi foglio di lavoro esistente.

È possibile utilizzare quasi tutti i tipi di giunzione, incluso LEFT OUTER JOIN (solo RIGHT OUTER JOIN e FULL OUTER JOIN non sono supportati).

Ecco un esempio:

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

Non è possibile preformare le giunzioni in stile SQL su tabelle Excel dall'interno di Excel. Detto questo, ci sono diversi modi per realizzare ciò che si sta cercando di fare.

In Excel, come dice Reuben, le formule che probabilmente funzioneranno meglio sono VLOOKUP e HLOOKUP. In entrambi i casi, si trova una corrispondenza su una riga unica che restituisce il valore della riga di colonna data a sinistra in basso a partire dall'id trovato.

Se si desidera aggiungere solo un paio di campi extra alla seconda lista, allora aggiungere le formule alla seconda lista. Se si desidera una tabella di stile “outer join”, aggiungere la formula VLOOKUP alla prima lista con ISNA per verificare se la ricerca è stata trovata. Se l'aiuto di Excel non vi fornisce sufficienti dettagli su come usarli nel vostro caso specifico, fatecelo sapere.

Se preferite usare SQL, collegate i dati nel vostro programma di database, create la vostra query ed esportate i risultati in Excel. (In Access potete importare i fogli di lavoro di Excel o i Named Ranges come tabella collegata).

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

Per Excel 2007 User: Data > From Other Sources > From Microsoft Query > browse to the Excel file

Secondo questo articolo , querying from XLS versione 2003 potrebbe risultare un “Questa fonte di dati non contiene tabelle visibili.” errore perché i fogli di lavoro sono trattati come tabella SYSTEM. Quindi controllare le opzioni della finestra di dialogo “Tabelle di sistema” nella “Query Wizard - Scegliere le colonne” quando si crea la query lavorerà round.

Per definire la vostra join: Finestra di dialogo Microsoft Query > Menu Tabella > Joins…

Per restituire i dati al foglio Excel originale, scegliere “Return data to Excel Sheet” dalla finestra di dialogo Microsoft Query > Menu File.

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

Cercando lo stesso problema mi sono imbattuto in RDBMerge , che penso sia un modo facile da usare per unire i dati di più cartelle di lavoro Excel, file csv e xml in una cartella di lavoro riassuntiva.

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

Se avete abbastanza familiarità con i database, potreste usare SQL Server per collegare entrambi i fogli di lavoro come Linked Server e poi usare T-SQL per fare il vostro lavoro di back-end dei dati. Quindi terminare collegando Excel di nuovo a SQL e tirare i dati in una tabella (regolare o pivot). Si può anche considerare l'uso di Powerpivot, che permetterà di collegare tra loro qualsiasi sorgente di database, incluso Excel usato come database piatto.