Per unire file CSV aggiungi due o più file e scegli come combinarli. L’accodamento mette in fila le righe di tutti i file in un’unica tabella e abbina le colonne per nome di intestazione, così una colonna presente solo in alcuni file viene mantenuta e lasciata vuota negli altri: è quello che quasi sempre si intende quando si uniscono export mensili o regionali. Il collegamento affianca due file su una o più colonne chiave, come un CERCA.VERT in un foglio di calcolo, e ti dice quante righe sono state abbinate, quali chiavi si ripetono e quante righe in più ne sono derivate. La tabella unita si aggiorna man mano che cambi le opzioni, e l’unione avviene nel browser: i file non vengono mai caricati.
Come unire file CSV
- Aggiungi i file. Per ognuno vengono rilevati delimitatore e codifica e la prima riga viene usata come intestazione. L’elenco mostra il numero di righe e le prime colonne di ciascun file; spostali in su o in giù per decidere l’ordine.
- Scegli se accodare, cioè mettere le righe di tutti i file una dopo l’altra, o collegare, cioè abbinare le righe dei primi due file tramite una chiave.
- Controlla l’anteprima e le note sopra di essa, poi scarica il risultato in CSV o aprilo nell’editor CSV per continuare a lavorarci.
Le righe seguono l’ordine dell’elenco: prima tutte quelle del primo file, poi quelle del secondo e così via. Se devi unire molti export mensili, aggiungili tutti insieme e attiva la colonna con il nome del file, così ogni riga continua a indicare da quale file proviene.
Accodare file con colonne diverse
Per allineare le colonne quando accodi ci sono tre modi. Scegli quello adatto al modo in cui i tuoi file differiscono.
| Per nome (predefinito) | Il risultato contiene tutte le intestazioni di tutti i file, nell’ordine in cui compaiono la prima volta. Una riga proveniente da un file privo di una colonna lì ha un valore vuoto. I nomi devono coincidere esattamente: SKU e sku diventano due colonne distinte. |
|---|---|
| Stesse colonne obbligatorie | Si interrompe con un errore che indica il primo file le cui intestazioni differiscono per nome, numero o ordine. Usalo quando tutti i file dovrebbero arrivare dallo stesso export e una colonna rinominata è il segnale che qualcosa non va. |
| Per posizione | La colonna 1 va sotto la colonna 1, e così via. Le intestazioni vengono prese dal file con più colonne; i file più corti ricevono valori vuoti in fondo. Usalo solo se i file non hanno un’intestazione utilizzabile o hanno la stessa struttura con nomi diversi. |
| Colonna con il nome del file | Aggiunge un’ultima colonna, chiamata source_file se non la rinomini, con il nome del file di ogni riga. Il nome non deve coincidere con un’intestazione già esistente. |
| Rimuovi le righe ripetute identiche | Dopo l’accodamento elimina ogni riga identica a una precedente e indica quante ne sono state rimosse. Resta la prima copia. I valori devono coincidere esattamente, maiuscole e spazi compresi; la colonna con il nome del file non viene considerata, quindi la stessa riga in due file conta come duplicato. |
L’abbinamento per posizione mette i valori sotto l’intestazione sbagliata quando un file ha una colonna in più o in un ordine diverso: nell’esempio qui sotto, qty di aprile finirebbe sotto name. Con l’abbinamento per nome questo non succede, purché i file abbiano un’intestazione.
Collegare due file tramite una chiave
Il collegamento usa i primi due file dell’elenco come file di sinistra e di destra. Scegli una o più coppie di colonne chiave; i due nomi di ogni coppia possono essere diversi, per esempio customer_id a sinistra e id a destra. Con più coppie, una riga viene abbinata solo se corrispondono tutte.
| Tutte le righe del primo file (left join, predefinito) | Tutte le righe del file di sinistra, con le colonne di destra compilate dove la chiave corrisponde e vuote dove non corrisponde. |
|---|---|
| Solo le righe presenti in entrambi (inner join) | Solo le righe di sinistra la cui chiave si trova nel file di destra. |
| Tutte le righe del secondo file (right join) | Tutte le righe di destra: prima quelle abbinate, nell’ordine del file di sinistra, poi quelle di destra senza corrispondenza. |
| Tutte le righe di entrambi i file (full join) | Tutte le righe dei due file: il risultato del left join seguito dalle righe di destra senza corrispondenza. |
| Ignora maiuscole/minuscole e spazi esterni nelle chiavi | C02 corrisponde a c02. Nel risultato viene scritto il testo della chiave del file di sinistra. |
Il risultato contiene tutte le colonne di sinistra, seguite da quelle del file di destra tranne le colonne chiave. Una colonna di destra con un nome già usato riceve il suffisso (2), per esempio total (2), e le note elencano le colonne rinominate. Per una riga di destra senza corrispondenza, la chiave viene scritta nella colonna chiave di sinistra e le altre colonne di sinistra restano vuote.
Se una chiave compare più volte nel file di destra, ogni riga di sinistra abbinata viene ripetuta una volta per ciascuna corrispondenza. Le note contano le righe abbinate, quelle presenti solo a sinistra o solo a destra, le chiavi ripetute in ciascun file e le righe in più che ne derivano: se un collegamento che dovrebbe essere uno a uno non lo è, te ne accorgi subito.
Valori, intestazioni e delimitatori diversi
- I valori sono testo e restano esattamente come sono scritti, quindi
00123mantiene gli zeri iniziali. Anche le chiavi vengono confrontate come testo:00123e123non corrispondono, neppure ignorando maiuscole e spazi. - Delimitatori, virgolette e a capo racchiusi tra virgolette all’interno di un valore vengono letti secondo la RFC 4180 e, nel file scaricato, rimessi tra virgolette dove serve.
- All’interno di un file, un’intestazione vuota diventa
Column 3e una ripetuta diventaname (2). Questi nomi generati partecipano all’abbinamento per nome come tutti gli altri. - I file possono avere delimitatori e codifiche diversi, rilevati per ciascun file. Il file scaricato è delimitato da virgole e prende fine riga e codifica dal primo file dell’elenco. Le codifiche che il browser non sa scrivere, come Shift_JIS, vengono salvate in UTF-8.
Problemi di accodamento e collegamento
- Alcune colonne compaiono due volte con nomi quasi uguali. I file scrivono un’intestazione in modo diverso (
Emailedemail, o uno spazio finale). Rinominane una con Rinomina e riordina colonne CSV prima dell’unione, oppure usa l’abbinamento per posizione se la struttura è identica. - Il collegamento non abbina quasi nulla. Verifica che le chiavi siano scritte allo stesso modo nei due file: zeri iniziali, prefissi e spazi contano tutti. Attiva l’opzione che ignora maiuscole e spazi esterni, oppure ripulisci prima la colonna con Pulisci dati CSV.
- Il collegamento ha più righe del file di sinistra. Il file di destra ripete una chiave; le note mostrano quante chiavi si ripetono e quante righe in più hanno creato. Elimina i duplicati o scegli una coppia di chiavi più specifica.
- La tabella unita supera il limite del browser. Il risultato può avere al massimo 100.000 righe e 2 milioni di celle. Riduci prima i file con Filtra righe CSV oppure unisci meno file alla volta.
Limiti dell’unione e privacy
Ogni file può arrivare a 25 MB, 100.000 righe, 250 colonne e 2 milioni di celle, e il risultato dell’accodamento o del collegamento ha lo stesso tetto di 100.000 righe e 2 milioni di celle. L’unione non avviene in streaming: tutti i file vengono caricati in memoria.
I file vengono letti da un worker in background in questa scheda del browser e uniti sul tuo dispositivo, senza mai essere inviati a un server. Per scoprire cosa è cambiato tra due versioni di un file invece di combinarle, usa Confronta file CSV; per dividere un file in più parti, usa Dividi file CSV.
Esempio: accodare due file di magazzino con colonne diverse
Due export di magazzino con colonne diverse, accodati per nome con la colonna del nome file attiva. name e warehouse esistono in un solo file, quindi lì le righe dell’altro file restano vuote, e gli SKU mantengono gli zeri iniziali.
march.csv sku,name,qty 00123,"Desk lamp, brass",4 00456,Shelf,2 april.csv sku,qty,warehouse 00789,10,North 00456,2,
sku,name,qty,warehouse,source_file 00123,"Desk lamp, brass",4,,march.csv 00456,Shelf,2,,march.csv 00789,,10,North,april.csv 00456,,2,,april.csv
Domande frequenti
Posso collegare più di due file?
Non in un solo passaggio: il collegamento usa i primi due file dell’elenco. Scarica o apri il risultato e collegalo al file successivo. L’accodamento non ha questo limite e mette in fila tutti i file che aggiungi.
La rimozione delle righe duplicate guarda solo una colonna chiave?
No. Una riga viene eliminata solo se tutti i suoi valori coincidono esattamente con quelli di una riga precedente. Per tenere una sola riga per ID, passa il risultato in Pulisci dati CSV e lì rimuovi i duplicati in base a una colonna chiave.
Perché con l’abbinamento per posizione i valori sono finiti sotto l’intestazione sbagliata?
In questa modalità i nomi delle intestazioni non contano e le intestazioni vengono prese dal file con più colonne. Se un file ha una colonna che gli altri non hanno, tutti i valori successivi scalano di posto. Passa all’abbinamento per nome.