CODE Excel : maîtriser la conversion de caractères en codes ASCII
=CODE(texte)La formule CODE est une fonction texte fondamentale d'Excel qui permet de convertir un caractère en sa valeur numérique correspondante dans la table ASCII (American Standard Code for Information Interchange). Cette fonction est particulièrement utile lorsque vous travaillez avec des données textuelles complexes, du nettoyage de données ou de la validation de caractères spéciaux. Elle retourne un nombre entier entre 0 et 255 représentant le code ASCII du premier caractère d'une chaîne de texte. La maîtrise de CODE est essentielle pour les professionnels manipulant des données brutes, des fichiers d'importation ou nécessitant une analyse caractère par caractère. Cette fonction s'avère précieuse en combinaison avec d'autres fonctions texte comme CHAR, UNICODE ou UNICHAR pour effectuer des transformations de données sophistiquées. Que vous travailliez en comptabilité, en gestion de bases de données ou en analyse de données, comprendre CODE vous permettra de résoudre des problèmes complexes de manipulation de texte avec élégance et efficacité.
Syntaxe et paramètres
La syntaxe de la formule CODE est extrêmement simple : =CODE(texte). Le paramètre 'texte' est obligatoire et représente le caractère ou la chaîne de texte dont vous souhaitez obtenir le code ASCII. Si vous fournissez une chaîne contenant plusieurs caractères, CODE retournera uniquement le code ASCII du premier caractère. Par exemple, CODE('Excel') retournera 69, qui est le code ASCII de la lettre 'E'. Il est important de noter que CODE fonctionne avec la table ASCII standard, ce qui signifie que les caractères accentués ou spéciaux peuvent avoir des comportements différents selon votre version d'Excel et vos paramètres régionaux. Pour les caractères Unicode au-delà de la plage ASCII (128-255), utilisez plutôt la fonction UNICODE disponible dans Excel 2019 et 365. Le paramètre texte peut être une référence de cellule, une chaîne littérale entre guillemets, ou le résultat d'une autre formule. CODE est sensible à la casse : CODE('A') retourne 65 tandis que CODE('a') retourne 97.
textExemples pratiques
Validation de format de données
=IF(AND(CODE(LEFT(A2,1))>=65, CODE(LEFT(A2,1))<=90), "Valide", "Invalide")Cette formule extrait le premier caractère avec LEFT, convertit son code ASCII avec CODE, puis vérifie si ce code se situe entre 65 (A) et 90 (Z). Les codes ASCII des majuscules vont de 65 à 90.
Détection de caractères numériques
=IF(AND(CODE(LEFT(B3,1))>=48, CODE(LEFT(B3,1))<=57), "Commence par chiffre", "Commence par lettre")Les codes ASCII des chiffres 0 à 9 vont de 48 à 57. Cette formule vérifie si le premier caractère est dans cette plage pour identifier les références commençant par un nombre.
Nettoyage de données avec caractères spéciaux
=IF(CODE(LEFT(C4,1))<32, "Caractère spécial détecté", "OK")Les codes ASCII inférieurs à 32 représentent des caractères de contrôle non imprimables. Cette formule détecte leur présence pour permettre un nettoyage ultérieur avec CLEAN ou TRIM.
Points clés à retenir
- CODE convertit le premier caractère d'une chaîne en sa valeur ASCII (0-255), retournant un nombre entier
- La fonction est sensible à la casse : 'A' et 'a' ont des codes différents (65 vs 97)
- Combinez CODE avec LEFT, MID et autres fonctions texte pour analyser ou valider des données complexes
- Pour les caractères Unicode avancés ou accentués, préférez UNICODE (Excel 2019+) à CODE
- CODE est particulièrement utile pour nettoyer les données, valider les formats et détecter les caractères spéciaux
Astuces de pro
Créez une table de référence ASCII : construisez une colonne avec =ROW()-1 (de 1 à 255) et une autre avec =CHAR(A1) pour avoir une table ASCII complète consultable rapidement.
Impact : Gagnez du temps en recherchant les codes sans convertir à chaque fois, et facilitez la compréhension des résultats CODE.
Combinez CODE avec SUBSTITUTE pour remplacer des caractères spécifiques : =SUBSTITUTE(A1, CHAR(CODE(B1)), CHAR(CODE(C1))) pour remplacer un caractère par un autre basé sur leurs codes.
Impact : Permet des transformations de texte sophistiquées basées sur les codes ASCII, utile pour les nettoyages de données.
Utilisez CODE pour créer des formules de tri personnalisé : vérifiez le premier caractère avec CODE pour trier les données selon qu'elles commencent par une lettre, un chiffre ou un caractère spécial.
Impact : Automatisez les tri complexes sans passer par le menu Tri, directement dans vos formules de classement.
Pour déboguer des problèmes de données, créez une colonne helper affichant =CODE(A1)&" - "&A1 pour voir immédiatement le code ASCII et le caractère associé côte à côte.
Impact : Identifiez rapidement les caractères invisibles ou inattendus qui causent des erreurs dans vos données.
Combinaisons utiles
Extraction de codes ASCII multiples
=CONCATENATE(CODE(MID(A1,1,1)),"-",CODE(MID(A1,2,1)),"-",CODE(MID(A1,3,1)))Cette formule combine CODE avec MID pour extraire et afficher les codes ASCII des trois premiers caractères, séparés par des tirets. Utile pour analyser les patterns de caractères.
Conversion bidirectionnelle texte-code
=IF(ISNUMBER(A1), CHAR(A1), CODE(A1))Cette formule crée une conversion intelligente : si A1 contient un nombre, CHAR le convertit en caractère ; si c'est du texte, CODE le convertit en nombre. Parfait pour des feuilles de conversion.
Détection de caractères spéciaux avec somme
=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57))Cette formule avancée compte tous les caractères qui ne sont pas des chiffres (codes ASCII en dehors de 48-57) dans une chaîne complète, permettant une analyse détaillée du contenu.
Erreurs courantes
Cause : Le paramètre texte est vide, NULL ou contient un type de données non textuel non convertible.
Solution : Vérifiez que la cellule référencée contient effectivement du texte. Utilisez =CODE(A1) au lieu de =CODE(A1:A10). Si la cellule peut être vide, enveloppez avec IF : =IF(A1="", "", CODE(A1))
Cause : La cellule référencée dans CODE a été supprimée ou la plage n'existe plus.
Solution : Vérifiez que toutes les références de cellules existent toujours dans votre feuille. Utilisez Ctrl+Maj+F9 pour recalculer les formules ou recréez la référence correctement.
Cause : Le paramètre texte contient un caractère différent de celui attendu, souvent un espace ou un caractère invisible au début.
Solution : Utilisez =TRIM(A1) avant CODE pour supprimer les espaces inutiles : =CODE(TRIM(A1)). Vérifiez le contenu réel de la cellule avec la barre de formule ou utilisez LEN pour vérifier la longueur.
Checklist de dépannage
- 1.Vérifiez que le paramètre n'est pas une plage entière (A1:A10) mais une seule cellule (A1)
- 2.Utilisez TRIM pour supprimer les espaces invisibles avant CODE : =CODE(TRIM(A1))
- 3.Confirmez que la cellule contient du texte et non un nombre formaté en texte
- 4.Pour les caractères accentués, testez avec UNICODE si vous êtes en Excel 2019+ ou vérifiez vos paramètres régionaux
- 5.Vérifiez que la formule ne référence pas une cellule supprimée ou une plage invalide
- 6.Utilisez la barre de formule pour voir le contenu exact de la cellule et identifier les caractères cachés
Cas particuliers
Chaîne vide ou cellule vide
Comportement : CODE retourne #VALUE! car il n'y a pas de caractère à convertir
Solution : Utilisez =IF(A1="", 0, CODE(A1)) ou =IFERROR(CODE(A1), 0) pour gérer les cellules vides
C'est un cas courant lors du traitement de données avec des lignes incomplètes
Caractères de contrôle non imprimables (codes 0-31)
Comportement : CODE retourne le code correct, mais le caractère n'est pas visible dans la cellule
Solution : Utilisez CLEAN ou TRIM pour supprimer ces caractères, ou détectez-les avec =IF(CODE(A1)<32, "Spécial", "Normal")
Souvent causés par des imports de fichiers mal formatés ou des copier-coller depuis des sources externes
Caractères accentués ou spéciaux (é, ñ, ü, etc.)
Comportement : CODE peut retourner des valeurs différentes selon la version d'Excel et les paramètres régionaux, ou des codes > 127
Solution : Testez d'abord sur vos données réelles. Pour plus de fiabilité, utilisez UNICODE en Excel 2019+ qui gère mieux ces caractères
Cela dépend fortement de l'encodage de votre fichier (UTF-8, ANSI, etc.)
Limitations
- •CODE retourne uniquement le code du premier caractère ; pour analyser une chaîne complète, vous devez combiner avec MID et créer des formules complexes
- •La fonction ne fonctionne que avec des caractères ASCII de base (0-255) ; pour les caractères Unicode avancés, UNICODE est nécessaire (Excel 2019+)
- •Les résultats pour les caractères accentués ou spéciaux peuvent varier selon la version d'Excel et les paramètres régionaux du système
- •CODE ne peut pas être utilisée seule pour valider des formats complexes (emails, URLs, etc.) ; elle doit être combinée avec d'autres fonctions pour des validations robustes
Alternatives
Compatibilité
✓ Excel
Depuis 2007
=CODE(texte) fonctionne identiquement dans Excel 2007, 2010, 2013, 2016, 2019 et 365✓Google Sheets
=CODE(texte) fonctionne de manière identique dans Google SheetsComportement identique à Excel, syntaxe compatible. Google Sheets supporte aussi UNICODE pour les caractères avancés.
✓LibreOffice
=CODE(texte) fonctionne dans LibreOffice Calc avec la même syntaxe qu'Excel