Pour fusionner des fichiers CSV, ajoutez-en deux ou plus et choisissez comment les combiner. L’empilement met les lignes de tous les fichiers dans un seul tableau en associant les colonnes par nom d’en-tête ; une colonne présente dans certains fichiers seulement est conservée et laissée vide ailleurs. C’est ce que l’on fait le plus souvent pour regrouper des exports mensuels ou régionaux. La jointure place deux fichiers côte à côte d’après une ou plusieurs colonnes clés, comme une RECHERCHEV dans un tableur, et indique combien de lignes ont été appariées, quelles clés se répètent et combien de lignes supplémentaires cela a créé. Le tableau fusionné suit chacun de vos réglages, et la fusion a lieu dans votre navigateur, sans aucun envoi.
Fusionner des fichiers CSV, étape par étape
- Ajoutez les fichiers. Pour chacun, le séparateur et l’encodage sont détectés et la première ligne sert d’en-tête. La liste affiche le nombre de lignes et les premières colonnes de chaque fichier ; montez ou descendez les fichiers pour fixer l’ordre.
- Choisissez l’empilement pour mettre les lignes de chaque fichier les unes à la suite des autres, ou la jointure pour apparier les lignes des deux premiers fichiers sur une clé.
- Vérifiez l’aperçu et les notes au-dessus, puis téléchargez le résultat en CSV ou ouvrez-le dans l’éditeur CSV pour continuer.
Les lignes suivent l’ordre de la liste des fichiers : toutes les lignes du premier fichier, puis toutes celles du deuxième, et ainsi de suite. Pour regrouper de nombreux exports mensuels, ajoutez-les tous d’un coup et activez la colonne d’origine : chaque ligne indiquera de quel fichier elle provient.
Empiler des fichiers aux colonnes différentes
L’empilement propose trois façons d’aligner les colonnes. Choisissez celle qui correspond aux différences entre vos fichiers.
| Par nom d’en-tête (par défaut) | Le résultat contient tous les en-têtes de tous les fichiers, dans l’ordre de leur première apparition. Une ligne issue d’un fichier auquel il manque une colonne y reçoit une valeur vide. Les noms doivent correspondre exactement : SKU et sku donnent deux colonnes. |
|---|---|
| En-têtes identiques exigés | S’arrête sur une erreur qui nomme le premier fichier dont les en-têtes diffèrent par le nom, le nombre ou l’ordre. Utilisez ce mode quand tous les fichiers doivent provenir du même export et qu’une colonne renommée signale un problème. |
| Par position | La colonne 1 va sous la colonne 1, et ainsi de suite. Les en-têtes sont repris du fichier qui a le plus de colonnes ; les fichiers plus courts reçoivent des valeurs vides à la fin. Réservez ce mode aux fichiers sans en-tête exploitable, ou de même structure sous des noms différents. |
| Ajouter une colonne d’origine | Ajoute une dernière colonne, nommée source_file sauf si vous la renommez, qui contient le nom du fichier de chaque ligne. Ce nom ne doit pas déjà être un en-tête. |
| Supprimer les lignes en double | Après l’empilement, retire chaque ligne identique à une ligne précédente et indique combien ont été supprimées. Le premier exemplaire est conservé. Les valeurs doivent être exactement égales, casse et espaces compris ; la colonne d’origine n’est pas prise en compte, si bien qu’une même ligne présente dans deux fichiers compte comme un doublon. |
L’alignement par position place des valeurs sous le mauvais en-tête dès qu’un fichier a une colonne en plus ou dans un autre ordre : dans l’exemple ci-dessous, la colonne qty d’avril se retrouverait sous name. L’alignement par nom d’en-tête évite ce problème dès que les fichiers ont des en-têtes.
Joindre deux fichiers sur une clé
La jointure prend les deux premiers fichiers de la liste comme fichier de gauche et fichier de droite. Choisissez une ou plusieurs paires de colonnes clés ; chaque paire peut porter des noms différents, comme customer_id à gauche et id à droite. Avec plusieurs paires, une ligne n’est appariée que si toutes les paires correspondent.
| Jointure gauche (par défaut) | Toutes les lignes de gauche, avec les colonnes de droite remplies lorsque la clé a été trouvée et vides sinon. |
|---|---|
| Jointure interne | Uniquement les lignes de gauche dont la clé figure dans le fichier de droite. |
| Jointure droite | Toutes les lignes de droite : les lignes appariées dans l’ordre du fichier de gauche, puis les lignes de droite sans correspondance. |
| Jointure complète | Toutes les lignes des deux fichiers : le résultat de la jointure gauche, suivi des lignes de droite sans correspondance. |
| Ignorer la casse et les espaces autour des clés | C02 correspond à c02. C’est le texte de la clé du fichier de gauche qui est écrit dans le résultat. |
Le résultat contient toutes les colonnes de gauche, puis les colonnes du fichier de droite à l’exception de ses colonnes clés. Une colonne de droite dont le nom est déjà pris reçoit le suffixe (2), par exemple total (2), et les notes listent les colonnes renommées. Pour une ligne de droite sans correspondance, sa clé est écrite dans la colonne clé de gauche et les autres colonnes de gauche restent vides.
Si une clé apparaît plusieurs fois dans le fichier de droite, chaque ligne de gauche correspondante est répétée autant de fois. Les notes comptent les lignes appariées, celles présentes seulement à gauche ou seulement à droite, les clés répétées de chaque côté et les lignes supplémentaires créées : une recherche censée être un pour un révèle tout de suite qu’elle ne l’est pas.
Valeurs, en-têtes et séparateurs différents
- Les valeurs sont du texte et restent exactement telles qu’elles sont écrites :
00123garde ses zéros initiaux. Les clés sont elles aussi comparées comme du texte :00123et123ne correspondent pas, même en ignorant la casse et les espaces. - Les séparateurs, guillemets et sauts de ligne à l’intérieur d’une valeur sont lus selon la RFC 4180 et remis entre guillemets si nécessaire dans le fichier téléchargé.
- Au sein d’un fichier, un en-tête vide devient
Column 3et un en-tête répéténame (2). Ces noms générés participent à l’alignement par nom d’en-tête comme les autres. - Les fichiers peuvent utiliser des séparateurs et des encodages différents ; chacun est détecté séparément. Le fichier téléchargé est séparé par des virgules, et ses fins de ligne et son encodage suivent le premier fichier de la liste. Les encodages qu’un navigateur ne sait pas écrire, comme le Shift_JIS, sont enregistrés en UTF-8.
Problèmes d’empilement et de jointure
- Des colonnes apparaissent deux fois sous des noms légèrement différents. Les fichiers n’écrivent pas l’en-tête de la même façon (
Emailetemail, ou une espace finale). Renommez-en un avec Renommer et réorganiser les colonnes d’un CSV avant la fusion, ou alignez par position si les structures sont identiques. - Une jointure n’apparie presque rien. Vérifiez que les clés sont écrites de la même façon dans les deux fichiers : zéros initiaux, préfixes et espaces comptent tous. Activez l’option qui ignore la casse et les espaces autour des clés, ou nettoyez d’abord la colonne avec Nettoyer les données d’un CSV.
- La jointure compte plus de lignes que le fichier de gauche. Le fichier de droite répète une clé ; les notes indiquent combien de clés se répètent et combien de lignes supplémentaires elles ont créé. Supprimez les doublons ou choisissez une paire de clés plus précise.
- Le tableau fusionné dépasse la limite du navigateur. Le résultat peut compter au maximum 100 000 lignes et 2 millions de cellules. Filtrez d’abord les fichiers d’entrée, ou fusionnez moins de fichiers à la fois.
Limites de la fusion et confidentialité
Chaque fichier peut atteindre 25 Mo, 100 000 lignes, 250 colonnes et 2 millions de cellules, et le résultat de l’empilement ou de la jointure est soumis aux mêmes limites de 100 000 lignes et 2 millions de cellules. La fusion ne fonctionne pas en flux : chaque fichier est chargé en mémoire.
Les fichiers sont lus dans un worker en arrière-plan, dans cet onglet, et fusionnés dans votre navigateur. Ils ne sont jamais envoyés sur un serveur. Pour voir ce qui a changé entre deux versions d’un fichier plutôt que de les combiner, utilisez Comparer des fichiers CSV ; pour couper un fichier en plusieurs, utilisez Découper un CSV en plusieurs fichiers.
Exemple : empiler deux fichiers d’inventaire aux colonnes différentes
Deux exports de stock aux colonnes différentes, empilés par nom d’en-tête avec la colonne d’origine activée. name et warehouse n’existent que dans un des deux fichiers : les lignes de l’autre fichier y sont vides, et les références SKU gardent leurs zéros initiaux.
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
Questions fréquentes
Puis-je joindre plus de deux fichiers ?
Pas en une seule étape. La jointure utilise les deux premiers fichiers de la liste. Téléchargez ou ouvrez le résultat, puis joignez-le au fichier suivant. L’empilement n’a pas cette limite et met bout à bout tous les fichiers ajoutés.
La suppression des lignes en double ne compare-t-elle qu’une colonne clé ?
Non. Une ligne n’est supprimée que si toutes ses valeurs sont exactement égales à celles d’une ligne précédente. Pour ne garder qu’une ligne par identifiant, passez le résultat dans Nettoyer les données d’un CSV et supprimez-y les doublons selon une colonne clé.
Pourquoi l’alignement par position a-t-il placé des valeurs sous le mauvais en-tête ?
Ce mode ignore les noms d’en-têtes et reprend ceux du fichier qui a le plus de colonnes. Si un fichier a une colonne que les autres n’ont pas, toutes les valeurs suivantes se décalent. Passez à l’alignement par nom d’en-tête.