Les lignes ne sont pas toujours absentes. Dans Excel, deux fichiers CSV paraissent désynchronisés le plus souvent parce que l'ordre des lignes a changé, le format de la clé a changé, ou un fichier ne couvre pas la même période que l'autre.
C'est pourquoi la comparaison ligne par ligne échoue si vite. Un export CSV financier ne transporte pas le sens par numéro de ligne. Il le transporte par une clé stable : identifiant de transaction, identifiant de versement, numéro de facture, ou une combinaison date-montant quand aucun identifiant unique n'existe.
Ce que « lignes manquantes » veut dire le plus souvent
| Symptôme | Ce que cela signifie le plus souvent | Première vérification |
|---|---|---|
| Tout cesse de s'aligner après la ligne 214 | Un fichier est trié différemment | Vérifiez la clé de correspondance, pas le numéro de ligne |
| Une ligne paraît absente dans un fichier | La clé est stockée différemment | Comparez TYPE() et NBCAR() sur les deux clés |
| Les comptages diffèrent de quelques lignes | Filtres, lignes vides ou période différente | Vérifiez le nombre de lignes et les dates extrêmes |
| Un fichier a des lignes en trop en haut | Décalage d'en-tête ou lignes de préambule | Repérez où commence vraiment la ligne d'en-tête |
| Une ligne paraît absente après l'import | L'enregistrement est dupliqué sous un autre format de clé | Cherchez des zéros de tête, des espaces ou une conversion de date |
Si vous prenez la position de la ligne comme unité de comparaison, un seul enregistrement décalé fait paraître fausses toutes les lignes en dessous. Ce n'est pas un problème de lignes manquantes. C'est un problème de méthode de comparaison.
Avant de toucher à une formule
Commencez par la structure du fichier. Ces vérifications prennent moins de temps que de reconstruire des formules pointées sur la mauvaise cible.
| Vérification | Ce qu'il faut confirmer |
|---|---|
| Clé de correspondance | Quelle colonne identifie une transaction de façon unique dans les deux fichiers |
| Ligne d'en-tête | Si les deux fichiers commencent sur la même vraie ligne d'en-tête |
| Nombre de lignes | Si un fichier est plus court avant tout filtrage |
| Période couverte | Si les deux exports couvrent les mêmes première et dernière dates |
| Filtres | Si des lignes masquées font paraître un fichier incomplet |
| Type de clé | Si la clé est du texte dans un fichier et un nombre dans l'autre |
Pour les fichiers bancaires et de grand livre, la clé n'est presque jamais « la ligne 237 ». C'est une référence de transaction, un identifiant de ligne de relevé, une référence de versement, un numéro de facture, ou une clé combinée construite à dessein comme date|amount|reference.
Si vos recherches échouent déjà parce que les formats de clé ne concordent pas, pourquoi RECHERCHEV renvoie #N/A avec des fichiers CSV aux formats incompatibles détaille d'abord les vérifications de type et les étapes de nettoyage.
Associez les colonnes avant de rapprocher les lignes
Deux fichiers CSV issus de systèmes différents utilisent rarement les mêmes noms de colonnes, même quand ils désignent la même chose.
| En-tête fichier A | En-tête fichier B | Même sens ? |
|---|---|---|
| Transaction ID | Reference | Oui |
| Posting Date | Value Date | Souvent |
| Gross Amount | Credit | Parfois |
| Description | Memo | Parfois |
| Payout ID | Batch Ref | Oui |
Si les en-têtes ne s'associent pas proprement, arrêtez-vous là et décidez quels champs définiront la correspondance. N'avancez pas avec une recherche qui suppose que Reference et Description sont interchangeables.
La comparaison fiable la plus rapide repose sur :
- Une clé de correspondance normalisée dans le fichier A
- La même clé de correspondance normalisée dans le fichier B
- Une colonne de statut qui marque chaque ligne : correspondance, manquante ou doublon
Normalisez la clé avant de chercher les lignes manquantes
C'est de là que viennent la plupart des fausses lignes manquantes. La transaction existe dans les deux fichiers, mais la clé n'y est pas stockée de la même façon.
| Ce que vous voyez | Le fichier A stocke | Le fichier B stocke | Résultat |
|---|---|---|---|
| 0001842 | Texte avec zéros de tête | Nombre 1842 | Fausse ligne manquante |
| 2026-05-10 | Date en texte | Date sérielle Excel | Fausse ligne manquante |
| INV-7721 | INV-7721 avec espace en fin | INV-7721 | Fausse ligne manquante |
| REF-0091 | Texte en majuscules | Texte en minuscules dans un traitement sensible à la casse | Faux écart |
Utilisez la plus petite correction qui prouve le problème :
=SUPPRESPACE(EPURAGE(SUBSTITUE(A2,CAR(160)," ")))pour les espaces et les caractères masqués=TEXTE(A2,"0")quand la clé numérique doit rester du texte=CNUM(A2)quand la clé doit devenir un vrai nombre=TEXTE(A2,"aaaa-mm-jj")quand les deux fichiers doivent comparer sur la même clé de date
N'écrasez pas la clé brute. Construisez une colonne auxiliaire normalisée à côté, pour garder sous les yeux ce qui a changé.
Un petit exemple concret avant de parcourir tout le fichier
Supposons que le fichier A contienne ces clés de transaction :
| Clé brute du fichier A |
|---|
0001842 |
0001843 |
0001844 |
Et que le fichier B contienne :
| Clé brute du fichier B |
|---|
1842 |
1843 |
1845 |
Si vous comparez les clés brutes, Excel vous dit que les trois lignes sont fausses. Ce n'est pas la vraie réponse.
Après une normalisation correcte de la clé, le résultat devient :
| Clé normalisée | Statut fichier A | Statut fichier B | Ce que cela signifie |
|---|---|---|---|
0001842 | Présent | Absent | Le fichier B a perdu les zéros de tête ou utilise un autre format de clé |
0001843 | Présent | Absent | Même problème que ci-dessus |
0001844 | Présent | Absent | Vraiment absent si aucune autre clé n'existe |
1845 | Absent | Présent | Le fichier B a une ligne que le fichier A n'a pas |
Cet exemple montre que chercher les lignes manquantes, c'est d'abord normaliser les clés. Tant que les deux fichiers ne parlent pas le même langage d'identifiants, le résultat « manquant » n'est pas fiable.
Trouvez les vraies lignes manquantes avec une vérification inverse
Le moyen le plus rapide de prouver qu'une ligne est vraiment absente, c'est de vérifier dans les deux sens.
1. Construisez une colonne de clé nettoyée dans chaque fichier
Supposons que le fichier A utilise la colonne E pour la clé nettoyée et le fichier B la colonne J.
2. Marquez les lignes du fichier A qui n'existent pas dans le fichier B
=SI(NB.SI($J$2:$J$5000,E2)=0,"Manquant dans le fichier B","Correspondance")C'est mieux qu'une vérification ligne par ligne à l'œil, parce que ça ignore l'ordre et teste l'existence par la clé.
3. Lancez la vérification inverse dans le fichier B
=SI(NB.SI($E$2:$E$5000,J2)=0,"Manquant dans le fichier A","Correspondance")La vérification inverse compte. Une formule à sens unique ne vous montre qu'un seul côté de la différence.
4. Repérez les doublons avant de vous fier au résultat
=SI(NB.SI($E$2:$E$5000,E2)>1,"Clé en double","Unique")Si la clé est dupliquée, une ligne peut paraître manquante alors que le vrai problème est que la clé de comparaison n'est pas assez unique.
Ce qui change quand il n'y a pas d'identifiant de transaction unique
Certains fichiers financiers ne vous donnent pas une colonne de clé propre. Les CSV bancaires, les exports de versements et les grands livres tenus à la main vous obligent souvent à en construire une.
Dans ce cas, n'utilisez une clé combinée qu'après avoir décidé quels champs sont assez stables pour qu'on s'y fie :
| Clé faible | Pourquoi elle échoue |
|---|---|
| Montant seul | Les doublons sont fréquents |
| Date seule | Beaucoup de lignes partagent la même date |
| Description seule | Les descriptions changent ou se tronquent |
| Meilleure clé combinée | Pourquoi elle fonctionne mieux | ||
|---|---|---|---|
| `date | amount | reference` | Conserve l'identifiant le plus fort quand il existe |
| `date | amount | type` | Utile quand les références manquent mais que la forme de la ligne est stable |
| `payout_id | net_amount` | Utile pour les fichiers de règlement groupés |
Construisez la clé de la même façon dans les deux fichiers pour que les deux côtés produisent des chaînes identiques :
=A2&"|"&TEXTE(C2,"yyyy-mm-dd")&"|"&TEXTE(D2,"0.00")Forcez la date et le montant dans des formats fixes à l'intérieur de la clé. Si un côté laisse le montant en 1250 et l'autre en 1 250,00, les clés combinées ne correspondront pas, même quand les lignes correspondent.
C'est aussi là qu'apparaissent les problèmes d'un-à-plusieurs. Une seule ligne de versement peut représenter plusieurs ventes. Un export de grand livre peut scinder un seul mouvement bancaire en deux écritures comptables. Si les fichiers enregistrent le même événement à des niveaux différents, la ligne n'est pas manquante. C'est sa forme qui diffère.
Séparez les lignes manquantes des lignes en écart
Une comparaison de fichiers n'est utile que si elle vous dit quel type de problème vous avez.
| Statut | Ce que cela signifie |
|---|---|
| Correspondance | La clé normalisée existe dans les deux fichiers |
| Manquant dans le fichier A | La clé n'existe que dans le fichier B |
| Manquant dans le fichier B | La clé n'existe que dans le fichier A |
| Clé en double | La clé choisie ne peut pas identifier les lignes de façon unique |
| Écart sur le montant ou la date | La ligne existe dans les deux fichiers, mais un champ de comparaison diffère |
C'est là que l'on perd du temps avec RECHERCHEV. On se sert d'une seule recherche pour répondre à deux questions distinctes :
- La ligne existe-t-elle ?
- Si elle existe, les autres champs concordent-ils ?
Ce sont deux vérifications séparées. Établissez d'abord l'existence. Comparez seulement ensuite les colonnes de montant, de date ou de statut.
S'il vous faut une deuxième passe sur les écarts de champs une fois l'existence prouvée, comment comparer deux listes Excel et repérer les écarts est l'étape suivante.
Le résultat auquel vous pouvez vous fier
À la fin, votre feuille ne doit pas se contenter de dire « il manque des lignes ». Elle doit produire un résultat sur lequel vous pouvez agir.
| Catégorie de résultat | Ce que vous devez obtenir |
|---|---|
| Lignes en correspondance | Le nombre et le total des lignes présentes dans les deux fichiers |
| Manquantes dans le fichier A | La liste exacte des clés absentes du fichier A |
| Manquantes dans le fichier B | La liste exacte des clés absentes du fichier B |
| Clés en double | Une liste de contrôle à part avant la comparaison finale |
| Champs en écart | Les lignes présentes dans les deux fichiers mais qui diffèrent sur le montant, la date ou le statut |
Ce résultat vous dit si le problème est une vraie transaction manquante, une différence de périmètre entre fichiers, ou une clé défaillante.
