Maîtriser LENB : Mesurer la longueur des textes en octets dans Excel
=LENB(texte)La formule LENB est une fonction Excel spécialisée qui calcule la longueur d'une chaîne de caractères en octets plutôt qu'en caractères. Contrairement à la fonction LEN qui compte les caractères individuels, LENB prend en compte l'encodage des caractères, ce qui est particulièrement important lorsque vous travaillez avec des alphabets non-latins comme le chinois, l'arabe ou le cyrillique. Chaque caractère peut occuper un nombre d'octets différent selon son encodage : les caractères latins occupent généralement 1 octet, tandis que les caractères asiatiques peuvent en occuper 2 ou plus. Cette distinction devient cruciale dans les environnements multilingues et lors de la gestion de données qui seront traitées par des systèmes informatiques sensibles à la taille en octets. Les développeurs, les administrateurs de bases de données et les professionnels travaillant avec des fichiers d'échange internationaux utilisent régulièrement LENB pour valider et contrôler la taille réelle des données. Comprendre cette fonction vous permettra de mieux gérer les limitations de stockage, d'optimiser vos exports de données et d'éviter les erreurs de transmission liées à l'encodage des caractères.
Syntaxe et paramètres
La syntaxe de LENB est remarquablement simple : =LENB(texte), où le paramètre "texte" est obligatoire et représente la chaîne de caractères dont vous souhaitez connaître la longueur en octets. Ce paramètre peut être une cellule contenant du texte, une chaîne de caractères entre guillemets, ou une formule qui retourne du texte. La fonction retourne un nombre entier représentant le nombre total d'octets occupés par le texte. Il est essentiel de comprendre la différence fondamentale entre LENB et LEN : LEN compte les caractères visibles (1 caractère = 1 unité), tandis que LENB compte les octets selon l'encodage UTF-16 utilisé par Excel. Par exemple, la lettre "A" occupera 2 octets avec LENB (1 octet pour le caractère en UTF-16), alors que le caractère chinois "中" occupera 2 octets également. Si votre paramètre texte est vide ou contient uniquement des espaces, LENB retournera le nombre d'octets correspondants. La fonction accepte également des références à des cellules contenant du texte formaté, des nombres convertis en texte, ou des résultats d'autres formules. Pour les nombres bruts, Excel les convertit d'abord en texte avant de calculer leur longueur en octets.
textExemples pratiques
Validation de codes produits multilingues
=LENB(A2)La cellule A2 contient "Produit_中国_2024". LENB retourne 24 octets : 'P','r','o','d','u','i','t','_' (8 octets en UTF-16), puis les caractères chinois '中','国' (4 octets au total), puis '_','2','0','2','4' (10 octets). Le code produit respecte la limite de 50 octets.
Contrôle de noms de clients dans une base de données
=IF(LENB(B3)>100,"Nom trop long","OK")Cette formule vérifie si le nom du client en B3 dépasse 100 octets. Si le client s'appelle "Владимир Владимирович Петровский" (cyrillique), LENB comptera correctement les octets du texte cyrillique. La formule affiche "OK" ou "Nom trop long" selon le résultat.
Calcul de l'espace disque requis pour une liste de descriptions
=SUMPRODUCT(LENB(C2:C100))Cette formule additionne la longueur en octets de toutes les descriptions de la plage C2:C100. Si certaines descriptions contiennent du texte asiatique, LENB compte correctement chaque octet. Le résultat donne le nombre total d'octets requis pour stocker toutes ces descriptions.
Points clés à retenir
- LENB mesure la longueur en octets, pas en caractères, ce qui est essentiel pour les données multilingues et les systèmes sensibles à l'encodage.
- Chaque caractère n'occupe pas le même nombre d'octets : les caractères latins occupent 2 octets en UTF-16, les caractères asiatiques peuvent en occuper davantage.
- LENB est indispensable pour valider les données avant export vers des systèmes externes ayant des limites d'octets strictes.
- La combinaison de LENB avec IF, SUMPRODUCT et LEFTB offre des solutions puissantes pour l'analyse et la manipulation de texte multilingue.
- LENB n'est disponible que dans Excel 2007+ et LibreOffice Calc, pas dans Google Sheets (qui nécessite des solutions alternatives).
Astuces de pro
Utilisez LENB pour déboguer les problèmes d'encodage : si LEN retourne 10 mais LENB retourne 20, vous avez probablement du texte en UTF-16 ou des caractères spéciaux.
Impact : Gain de temps dans l'identification des problèmes de données et meilleure compréhension de l'encodage utilisé.
Combinez LENB avec SUBSTITUTE pour compter les octets d'une partie spécifique du texte : =LENB(A1)-LENB(SUBSTITUTE(A1,"texte",""))
Impact : Permet d'analyser la taille de portions de texte sans extraction préalable, utile pour les analyses statistiques.
Créez une colonne d'aide avec LENB pour identifier rapidement les anomalies dans vos données avant export vers des systèmes externes sensibles à la taille.
Impact : Prévention des erreurs lors de la transmission de données et réduction des allers-retours avec les équipes IT.
Utilisez LENB dans une validation de données personnalisée : =LENB(A1)<=100 pour empêcher l'entrée de texte dépassant 100 octets directement à la source.
Impact : Amélioration de la qualité des données dès la saisie et réduction des corrections ultérieures.
Combinaisons utiles
Validation conditionnelle avec IF et LENB
=IF(LENB(A1)>50,"Trop long",IF(LENB(A1)<10,"Trop court","OK"))Cette formule combine LENB avec IF pour vérifier si la longueur en octets se situe dans une plage acceptable (entre 10 et 50 octets). Utile pour valider des codes ou des identifiants qui doivent respecter des contraintes de taille précises.
Calcul total avec SUMPRODUCT et LENB
=SUMPRODUCT(LENB(A2:A100))/1024Cette formule calcule la taille totale en kilooctets (divisée par 1024) de toutes les cellules d'une plage. Pratique pour évaluer l'espace disque requis avant un export ou une migration de données.
Extraction de texte limitée en octets avec LEFTB
=LEFTB(A1,LENB(A1)/2)Cette formule extrait la première moitié d'une chaîne en octets. Elle divise le nombre total d'octets par 2 et utilise LEFTB pour extraire cette quantité. Utile pour tronquer du texte multilingue selon une limite d'octets.
Erreurs courantes
Cause : Le paramètre texte reçoit une valeur d'un type non compatible, comme un booléen (VRAI/FAUX) ou une référence à une cellule contenant une erreur Excel.
Solution : Vérifiez que le paramètre texte est bien une chaîne de caractères ou une référence à une cellule contenant du texte. Utilisez =LENB(TEXT(A1,"0")) pour convertir un nombre en texte avant de mesurer sa longueur.
Cause : Excel ne reconnaît pas la fonction LENB, généralement parce que vous utilisez une version très ancienne d'Excel (antérieure à 2007) ou une langue d'interface où le nom de la fonction est différent.
Solution : Vérifiez votre version d'Excel (LENB est disponible depuis Excel 2007). Si vous utilisez une version ancienne, utilisez LEN à la place, en sachant que vous compterez les caractères et non les octets.
Cause : La cellule référencée dans le paramètre texte a été supprimée ou la plage a été modifiée, créant une référence invalide.
Solution : Vérifiez que la cellule référencée existe toujours et n'a pas été supprimée. Corrigez la référence ou utilisez une plage absolue ($A$1) pour éviter les modifications accidentelles lors de copie-collage.
Checklist de dépannage
- 1.Vérifiez que la fonction LENB est bien orthographiée (pas de typo) et qu'Excel reconnaît le nom de la fonction.
- 2.Confirmez que votre version d'Excel est 2007 ou ultérieure (LENB n'existe pas dans les versions antérieures).
- 3.Assurez-vous que le paramètre texte n'est pas une référence à une cellule supprimée ou une plage invalide.
- 4.Vérifiez que la cellule référencée contient effectivement du texte et non une formule retournant une erreur (#REF!, #VALUE!, etc.).
- 5.Testez avec une chaîne de texte simple entre guillemets (ex: =LENB("test")) pour isoler le problème entre la formule et les données.
- 6.Si vous travaillez avec du texte multilingue, vérifiez l'encodage du fichier (UTF-8, UTF-16, etc.) qui peut affecter les résultats.
Cas particuliers
Texte contenant des caractères de contrôle ou des sauts de ligne
Comportement : LENB compte tous les octets, y compris les caractères invisibles comme les retours à la ligne (CHAR(10)) ou les tabulations (CHAR(9)).
Solution : Utilisez SUBSTITUTE pour nettoyer le texte avant de mesurer : =LENB(SUBSTITUTE(SUBSTITUTE(A1,CHAR(10),""),CHAR(13),""))
Important pour les données importées depuis des fichiers CSV ou des bases de données contenant des caractères de formatage.
Texte vide ou cellule vide
Comportement : LENB retourne 0 pour une chaîne vide ("") ou une cellule vide. Cela peut créer des résultats ambigus si vous cherchez à distinguer une cellule vide d'une cellule contenant une chaîne vide.
Solution : Utilisez =IF(A1="","Vide",LENB(A1)) pour différencier les cas ou =IF(ISBLANK(A1),0,LENB(A1))
Attention : une cellule contenant uniquement des espaces ne sera pas considérée comme vide par ISBLANK().
Nombres formatés en tant que texte vs nombres réels
Comportement : LENB convertit les nombres en texte, mais le résultat peut différer selon que le nombre est un vrai nombre ou du texte formaté. Par exemple, le nombre 123 et le texte "123" peuvent donner des résultats différents selon le contexte.
Solution : Utilisez TEXT() pour forcer la conversion : =LENB(TEXT(A1,"0")) ou vérifiez le type de donnée avec ISNUMBER()
Cette distinction est cruciale lors de l'importation de données depuis d'autres sources ou lors de la fusion de données provenant de systèmes différents.
Limitations
- •LENB n'est pas disponible dans Google Sheets, ce qui limite son utilisation si vous travaillez dans un environnement cloud collaboratif basé sur Google.
- •LENB compte toujours les octets en UTF-16, l'encodage interne d'Excel, ce qui peut ne pas correspondre à l'encodage réel de votre système de destination (UTF-8, ASCII, etc.). Vous devrez ajuster les calculs en fonction de votre cible.
- •LENB ne distingue pas les caractères visibles des caractères invisibles (espaces, retours à la ligne, caractères de contrôle), ce qui peut fausser les analyses si votre texte contient des données non-imprimables.
- •Pour les très grandes plages de données (plus de 100 000 lignes), l'utilisation de LENB dans des formules peut ralentir significativement les performances du fichier Excel, notamment avec SUMPRODUCT.
Alternatives
Compatibilité
✓ Excel
Depuis 2007
=LENB(texte) - Disponible dans toutes les versions depuis Excel 2007 (Excel 2007, 2010, 2013, 2016, 2019, 365)✗Google Sheets
Non disponible
✓LibreOffice
=LENB(texte) - Syntaxe identique à Excel, disponible dans LibreOffice Calc