🛠️ Excel : Comment extraire un ID quand le format de votre cellule change ?

🛠️ Excel : Comment extraire un ID quand le format de votre cellule change ?

Dans la gestion de bases de données (comme le suivi de paie ou la gestion scolaire), nous utilisons souvent des cellules de recherche "tout-en-un" qui combinent le matricule, le nom et la période.

Mais que se passe-t-il quand le format change ? Par exemple, passer de :

👉 12 GHOUMARI ZINEB

à :

👉 Mois : Février | ID : 10 MRAOUINE ZINA

Votre ancienne formule GAUCHE ne fonctionnera plus car le matricule n'est plus au début. Voici comment rendre votre extraction intelligente.


1. Le problème : La fin de la formule "GAUCHE"

Auparavant, nous utilisions une formule simple qui lisait les premiers caractères. Mais avec l'ajout de texte comme "Mois" ou "ID", le chiffre se retrouve "noyé" au milieu de la cellule. Si vous essayez de lire la gauche, Excel renvoie du texte et vos fonctions de calcul (VLOOKUP, INDEX/MATCH) tombent en erreur.


2. La solution "Universelle" (Toutes versions d'Excel)

Pour extraire le nombre situé après "ID : " et avant l'espace suivant, nous allons utiliser la fonction STXT (Segment de Texte).

La Formule magique :

Excel
=CNUM(STXT([Recherche]; TROUVE("ID : "; [Recherche]) + 5; TROUVE(" "; [Recherche]; TROUVE("ID : "; [Recherche]) + 5) - (TROUVE("ID : "; [Recherche]) + 5)))

Pourquoi ça marche ?

  1. Le repère : TROUVE("ID : "; ...) localise précisément le début de l'identifiant.

  2. Le décalage : On ajoute + 5 pour ignorer les lettres "I, D, :, (espace)" et arriver pile sur le premier chiffre.

  3. La découpe : STXT extrait les caractères.

  4. Le nettoyage : CNUM transforme ce texte en un véritable nombre que vous pouvez utiliser pour vos calculs de paie.


3. La solution "Moderne" (Office 365 & Excel 2024)

Si vous avez la chance d'utiliser une version récente d'Excel, vous pouvez oublier les calculs complexes. Les nouvelles fonctions de texte simplifient tout :

Excel
=CNUM(TEXTE.AVANT(TEXTE.APRES([Recherche]; "ID : "); " "))

Traduction en langage humain : "Regarde après 'ID : ', et prends tout ce qui se trouve avant le prochain espace." Simple, propre et efficace.


4. Le Conseil de l'Expert

Si votre fichier doit gérer les deux formats (l'ancien et le nouveau), vous pouvez fusionner les méthodes avec une condition :

Excel
=SI(ESTNUM(TROUVE("ID : "; [Recherche])); "Formule_Nouvelle"; "Formule_Ancienne")

Pourquoi est-ce utile ?

En automatisant l'extraction du matricule, vous évitez les erreurs de saisie manuelle. Que vous soyez en train de générer un bulletin de paie pour février ou mars, votre système reste robuste et s'adapte aux changements de structure de vos données.


Vous avez aimé cette astuce ? N'oubliez pas de consulter nos autres articles sur l'automatisation VBA et la gestion des tableaux croisés dynamiques !

C'est exactement cela ! Votre version est encore plus robuste car elle intègre le SIERREUR et le SUBSTITUE que vous utilisiez auparavant pour nettoyer les espaces résiduels dans l'ancien format.

Voici l'article de blog mis à jour, incluant cette formule finale ultra-sécurisée :


🏆 La Formule "Ultime" pour extraire un Matricule (Peu importe le format)

En tant que gestionnaire, on change parfois la présentation de nos données. On passe d'un format simple à un format plus détaillé (ajout du mois, de l'année, etc.). Le problème ? Vos formules de calcul se cassent.

Voici comment créer une formule "Auto-adaptative" qui reconnaît le format de votre cellule et extrait le matricule sans jamais faire d'erreur.

1. Le défi : Deux formats, une seule cellule

Vous avez deux types de données dans votre colonne Recherche :

  • Ancien format : 12 GHOUMARI ZINEB (Le chiffre est au début).

  • Nouveau format : Mois : Février | ID : 10 MRAOUINE ZINA (Le chiffre est au milieu après "ID :").

2. La Formule de "Génie"

Voici la formule combinée que nous avons mise au point :

Excel
=SI(ESTNUM(TROUVE("ID : ";Recherche_paie[Recherche]));
  CNUM(STXT(Recherche_paie[Recherche];TROUVE("ID : ";Recherche_paie[Recherche])+5;TROUVE(" ";Recherche_paie[Recherche];TROUVE("ID : ";Recherche_paie[Recherche])+5)-(TROUVE("ID : ";Recherche_paie[Recherche])+5)));
  CNUM(SUBSTITUE(SIERREUR(CNUM(GAUCHE(Recherche_paie[Recherche];TROUVE(" ";Recherche_paie[Recherche])));"");" ";""))
)

3. Pourquoi cette formule est-elle la meilleure ?

  • Détection automatique : Grâce à ESTNUM(TROUVE("ID : ";...)), Excel "regarde" la cellule. S'il voit "ID :", il sait qu'il doit chercher au milieu. Sinon, il cherche au début.

  • Nettoyage intégré : L'utilisation de SUBSTITUE et SIERREUR dans la deuxième partie de la formule permet d'éliminer les espaces invisibles qui font souvent échouer la fonction CNUM.

  • Zéro Erreur : Même si vous avez des lignes vides ou des formats mixtes dans votre tableau Recherche_paie, la formule reste stable.

4. Application concrète

Cette formule est idéale pour votre Recherche de Paie. Elle vous permet de basculer d'un mois à l'autre sans avoir à modifier vos réglages. Vous pouvez copier-coller vos listes, changer vos intitulés, et votre matricule sera toujours extrait correctement pour vos calculs de bulletins.


Astuce de pro : Lorsque vous utilisez des tableaux structurés (comme Recherche_paie), cette formule s'étend automatiquement à toutes les nouvelles lignes. Un vrai gain de temps pour vos rapports mensuels !

Commentaires

Posts les plus consultés de ce blog

🛠 Utilisation de CustomUIEditor pour Personnaliser le Ruban Excel

🗓️ Simulateur de Congés et Calendrier Collaboratif sous Google Sheets

Explication VBA : Facturation automatique Gestion client