CHERCHERB : La formule Excel pour rechercher du texte à partir d'une position en octets
=CHERCHERB(texte_cherche; texte; [no_depart])La formule CHERCHERB est une fonction de recherche textuelle avancée qui permet de localiser une chaîne de caractères spécifique au sein d'un texte plus long, en travaillant au niveau des octets plutôt que des caractères. Cette distinction est particulièrement importante lorsque vous manipulez des textes contenant des caractères accentués, des caractères spéciaux ou des jeux de caractères multiples comme le chinois ou l'arabe, où un seul caractère peut occuper plusieurs octets en mémoire. Contrairement à la fonction CHERCHER standard qui compte les caractères, CHERCHERB compte les octets, ce qui en fait un outil indispensable pour les professionnels travaillant avec des données internationales ou des encodages complexes. Cette fonction retourne la position en octets où commence le texte recherché, permettant ainsi une manipulation précise des données textuelles dans les contextes multilingues. Dans ce guide complet, vous découvrirez comment utiliser CHERCHERB efficacement, comment l'intégrer à vos analyses de données, et comment l'associer à d'autres fonctions pour créer des solutions robustes et performantes adaptées à vos besoins professionnels spécifiques.
Syntaxe et paramètres
La syntaxe de CHERCHERB est structurée autour de trois paramètres : =CHERCHERB(texte_cherche; texte; [no_depart]). Le paramètre texte_cherche (obligatoire) représente la chaîne de caractères que vous souhaitez localiser. Ce paramètre est insensible à la casse, ce qui signifie que « Excel » et « excel » seront traités identiquement. Le paramètre texte (obligatoire) constitue la chaîne de caractères dans laquelle la recherche s'effectuera. Le paramètre no_depart (optionnel) spécifie la position en octets à partir de laquelle commencer la recherche ; si omis, la recherche débute à la première position (octet 1). CHERCHERB retourne un nombre représentant la position en octets du premier caractère du texte trouvé. Si le texte n'est pas trouvé, la fonction retourne une erreur #VALEUR!. L'utilisation des octets au lieu des caractères est cruciale pour les textes contenant des caractères multi-octets, où chaque caractère peut occuper 1, 2, 3 ou même 4 octets selon l'encodage UTF-8 ou les pages de codes utilisées.
find_textwithin_textstart_numExemples pratiques
Recherche simple dans une adresse email
=CHERCHERB("@"; "[email protected]")Cette formule recherche la position en octets du symbole @ dans l'adresse email. Puisque @ est un caractère ASCII standard (1 octet), le résultat sera le même qu'avec CHERCHER.
Localisation d'un mot-clé dans un texte avec caractères accentués
=CHERCHERB("qualité"; "Ce produit offre une excellente qualité et durabilité")La recherche du mot « qualité » (contenant l'accent aigu) retourne la position en octets. Les caractères accentués occupent généralement 2 octets en UTF-8, ce qui explique pourquoi le résultat en octets diffère du résultat en caractères.
Recherche à partir d'une position spécifique dans un identifiant
=CHERCHERB("-"; "2024-REF-001-PROD"; 10)Cette formule recherche le tiret (-) à partir de la 10ème position en octets. Cela permet de localiser le deuxième tiret plutôt que le premier, utile pour parser des identifiants structurés.
Points clés à retenir
- CHERCHERB localise du texte en comptant les octets au lieu des caractères, essentiel pour les données internationales
- La fonction retourne la position en octets du premier caractère du texte trouvé, ou #VALEUR! si non trouvé
- CHERCHERB est insensible à la casse mais fonctionne avec les caractères accentués et spéciaux
- Combinez CHERCHERB avec MIDB, IFERROR et d'autres fonctions pour créer des solutions robustes de parsing de texte
- Testez vos formules avec des données réelles contenant des caractères multi-octets pour garantir la fiabilité
Astuces de pro
Utilisez CHERCHERB plutôt que CHERCHER si vos données contiennent des caractères multi-octets (accents, caractères asiatiques). Cela garantit la précision de vos calculs de positions.
Impact : Évite les erreurs subtiles d'extraction de texte et améliore la fiabilité des analyses avec des données internationales.
Combinez CHERCHERB avec IFERROR et un paramètre no_depart pour localiser la 2ème, 3ème occurrence, etc. : =IFERROR(CHERCHERB("texte"; A1; CHERCHERB("texte"; A1)+1); NA())
Impact : Permet de traiter des textes complexes avec plusieurs occurrences sans formules imbriquées excessives.
Testez vos formules CHERCHERB avec des caractères accentués en utilisant des fichiers encodés en UTF-8 pour garantir la compatibilité cross-platform.
Impact : Assure que vos analyses restent fiables même si les données sont partagées entre utilisateurs avec des paramètres régionaux différents.
Utilisez CHERCHERB dans les validations de données pour vérifier la présence de caractères obligatoires (comme le symbole @) avant de valider une entrée.
Impact : Crée des contrôles de qualité des données automatisés et améliore la cohérence de vos bases de données.
Combinaisons utiles
CHERCHERB + MIDB pour extraire du texte après une position
=MIDB(A1; CHERCHERB(":"; A1); 20)Cette combinaison localise d'abord le caractère « : » avec CHERCHERB, puis extrait 20 octets à partir de cette position avec MIDB. Utile pour parser des formats structurés comme « Clé: Valeur ».
CHERCHERB + IFERROR pour gérer les erreurs
=IFERROR(CHERCHERB("@"; A1); "Email invalide")Retourne un message personnalisé si le texte n'est pas trouvé au lieu de l'erreur #VALEUR!. Essentiel pour les analyses robustes et les rapports professionnels.
CHERCHERB + SUBSTITUTE pour remplacer après localisation
=SUBSTITUTE(A1; "ancien"; "nouveau"; CHERCHERB("ancien"; A1))Localise la première occurrence d'un texte avec CHERCHERB et la remplace avec SUBSTITUTE. Permet des remplacements sélectifs et contrôlés dans des chaînes complexes.
Erreurs courantes
Cause : Le texte recherché n'existe pas dans le texte principal, ou l'un des paramètres obligatoires est manquant ou mal formaté.
Solution : Vérifiez l'orthographe exacte du texte cherché, assurez-vous qu'il existe réellement dans le texte principal, et utilisez IFERROR pour gérer les cas où le texte n'est pas trouvé : =IFERROR(CHERCHERB("xyz"; A1); "Non trouvé")
Cause : La formule est mal orthographiée ou la fonction n'est pas reconnue (souvent sur des versions très anciennes d'Excel ou des configurations régionales spécifiques).
Solution : Vérifiez que vous avez écrit « CHERCHERB » correctement, vérifiez votre version d'Excel (minimum 2007), et assurez-vous que votre langue d'Excel supporte cette fonction.
Cause : Généralement causé par une référence de cellule invalide ou supprimée si vous utilisez CHERCHERB dans une formule complexe.
Solution : Vérifiez que toutes les références de cellules sont valides et n'ont pas été supprimées. Utilisez des références absolues ($A$1) si vous copiez la formule : =CHERCHERB("texte"; $A$1)
Checklist de dépannage
- 1.Vérifiez que le texte cherché existe réellement dans le texte principal (copie-colle pour confirmer l'exactitude)
- 2.Confirmez que CHERCHERB est disponible dans votre version d'Excel (minimum 2007) et que votre langue supporte cette fonction
- 3.Testez avec IFERROR pour identifier si le problème vient de la formule ou de l'absence du texte
- 4.Vérifiez l'encodage du fichier (UTF-8 vs ANSI) si vous travaillez avec des caractères accentués ou spéciaux
- 5.Assurez-vous que le paramètre no_depart ne dépasse pas la longueur totale du texte en octets
- 6.Utilisez OCTETS(A1) pour vérifier la longueur réelle en octets si vous manipulez des textes avec caractères multi-octets
Cas particuliers
Texte cherché qui est une sous-chaîne d'un mot plus long
Comportement : CHERCHERB retourne la position même si le texte est au milieu d'un mot (ex: chercher « la » dans « calculatrice » retourne une position)
Solution : Utilisez des délimiteurs ou des espaces pour affiner la recherche, ou combinez avec EXACT pour des correspondances exactes
Cela peut causer des faux positifs si vous ne faites pas attention aux contextes
Recherche avec le paramètre no_depart supérieur à la longueur du texte
Comportement : Retourne #VALEUR! car il n'y a rien à chercher après cette position
Solution : Vérifiez que no_depart <= OCTETS(texte) avant d'utiliser la fonction
Utilisez IFERROR pour gérer gracieusement ce cas
Caractères invisibles ou espaces non-standard (non-breaking spaces)
Comportement : CHERCHERB peut ne pas trouver le texte si les espaces sont différents (ex: espace régulier vs non-breaking space)
Solution : Utilisez SUBSTITUTE pour normaliser les espaces avant la recherche : =CHERCHERB("texte"; SUBSTITUTE(A1; CHAR(160); " "))
Les espaces insécables sont courants dans les données copiées depuis le web
Limitations
- •CHERCHERB ne peut trouver que la première occurrence. Pour les occurrences suivantes, vous devez utiliser le paramètre no_depart et créer des formules imbriquées complexes
- •La fonction retourne une position en octets, pas en caractères, ce qui rend les résultats moins intuitifs pour les textes contenant des caractères multi-octets
- •CHERCHERB est insensible à la casse, ce qui signifie que vous ne pouvez pas distinguer « Excel » de « EXCEL ». Pour une recherche sensible à la casse, utilisez RECHERCHER ou combinez avec EXACT
- •La fonction n'existe pas dans Google Sheets (qui utilise SEARCH en caractères au lieu d'octets), limitant la portabilité des formules entre plateformes
Alternatives
Compatibilité
✓ Excel
Depuis 2007
=CHERCHERB(texte_cherche; texte; [no_depart])✓Google Sheets
=SEARCH(texte_cherche; texte; [position_depart])Google Sheets utilise SEARCH qui fonctionne en caractères, pas en octets. FINDB n'existe pas dans Google Sheets. Pour une vraie équivalence, utilisez SEARCH avec la conscience que les résultats seront en caractères.
✓LibreOffice
=SEARCH(texte_cherche; texte; [position_depart])Questions fréquentes
Vous avez besoin d'aide pour maîtriser CHERCHERB et optimiser vos analyses de données? Découvrez ElyxAI, l'assistant Excel intelligent qui vous guide à travers les formules complexes et vous propose des solutions adaptées à vos besoins spécifiques. Simplifiez votre travail avec ElyxAI dès aujourd'hui!