La fonction UNICODE te permet de convertir n'importe quel caractère en son code numérique correspondant dans le standard Unicode. C'est l'outil indispensable pour analyser des caractères spéciaux, valider des données internationales, ou détecter des caractères invisibles dans tes feuilles de calcul.
Que tu travailles avec des émojis, des alphabets étrangers ou des symboles spéciaux, UNICODE te donne la clé pour comprendre et manipuler tous ces caractères : valider que des codes produits commencent par une majuscule, détecter des espaces insécables qui faussent tes comparaisons, classifier automatiquement des données multilingues.
Syntaxe de la fonction UNICODE
=UNICODE(texte)Comprendre chaque paramètre de la fonction UNICODE
texte
: le texte dont tu veux obtenir le code Unicode du premier caractèreCe paramètre peut être une référence de cellule (A1), du texte entre guillemets ("A"), un émoji ("😀"), ou le résultat d'une autre fonction qui retourne du texte.
Quelques exemples de codes renvoyés : =UNICODE("A") retourne 65, =UNICODE("€") retourne 8364, =UNICODE("😀") retourne 128512. Les chiffres 0-9 ont les codes 48-57, les majuscules A-Z ont les codes 65-90.
Astuce : Si le texte contient plusieurs caractères, seul le code du premier est retourné. Pour analyser chaque caractère d'un mot, combine UNICODE avec STXT : =UNICODE(STXT(A1; 2; 1)) donne le code du deuxième caractère.
Attention : Si tu appliques UNICODE à une cellule vide, tu obtiens #VALEUR!. Protège-toi avec =SI(A1=""; ""; UNICODE(A1)).
Pas envie d'écrire la formule UNICODE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Qualité données : valider que les codes produits commencent par une majuscule
Tu gères une base de données client et tu veux t'assurer que les codes produits commencent par une lettre majuscule (A-Z). Les majuscules ont les codes Unicode 65 à 90 : UNICODE te permet de le vérifier sans aucune liste de référence.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Code produit | Premier car. | Code Unicode | Valide ? |
| 2 | ABC123 | A | 65 | OUI |
| 3 | xyz789 | x | 120 | NON |
| 4 | DEF-456 | D | 68 | OUI |
| 5 | 9GH012 | 9 | 57 | NON |
=SI(ET(UNICODE(GAUCHE(A2;1))>=65; UNICODE(GAUCHE(A2;1))<=90); "OUI"; "NON")La formule teste si le code du premier caractère est compris entre 65 et 90 (les majuscules). xyz789 échoue car x a le code 120 (minuscule), et 9GH012 échoue car 9 a le code 57 (chiffre). Tu peux ainsi filtrer automatiquement les codes non conformes sur des milliers de lignes.
Nettoyage de données : détecter les caractères spéciaux dans des imports
Lors de l'importation de données depuis des sources externes, des caractères invisibles ou spéciaux peuvent s'infiltrer et fausser tes RECHERCHEV et comparaisons. UNICODE les trahit immédiatement.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Nom client | Code 1er car. | Problème détecté | Action |
| 2 | Martin | 77 | RAS | - |
| 3 | Dubois | 160 | Espace insécable | Nettoyer |
| 4 | Laurent | 76 | RAS | - |
| 5 | Bernard | 8203 | Espace largeur zéro | Nettoyer |
=SI(UNICODE(GAUCHE(A2;1))>127; "Caractère spécial détecté"; "OK")Tous les caractères standard du latin de base ont des codes inférieurs ou égaux à 127. Un code de 160 indique un espace insécable (souvent copié-collé depuis Word), 8203 un espace de largeur zéro quasiment invisible : la formule te les signale automatiquement.
Données internationales : classifier des textes par langue probable
Tu travailles avec une base de données internationale et tu veux classifier automatiquement les entrées selon leur langue en analysant les plages de codes Unicode des premiers caractères.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Texte | Code Unicode | Plage détectée | Langue probable |
| 2 | Hello | 72 | 65-122 | Latin |
| 3 | Привет | 1055 | 1024-1279 | Cyrillique |
| 4 | こんにちは | 12371 | 12352-12447 | Japonais |
| 5 | مرحبا | 1605 | 1536-1791 | Arabe |
=UNICODE(GAUCHE(A2;1))Chaque système d'écriture occupe une plage de codes bien définie : Latin 65-122, Cyrillique 1024-1279, Hiragana japonais 12352-12447, Arabe 1536-1791. La fonction donne le code du premier caractère, que tu testes ensuite dans une série de SI pour attribuer la langue probable.
Tri personnalisé : faire passer les chiffres avant les lettres
Tu veux créer un ordre de tri personnalisé qui ne suit pas l'ordre alphabétique standard, mais qui place les références commençant par un chiffre avant celles commençant par une lettre.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Référence | Code Unicode | Priorité | Ordre final |
| 2 | 9-Alpha | 57 | 1 | 1 |
| 3 | 5-Beta | 53 | 1 | 2 |
| 4 | A-Gamma | 65 | 2 | 3 |
| 5 | C-Delta | 67 | 2 | 4 |
=SI(ET(UNICODE(GAUCHE(A2;1))>=48; UNICODE(GAUCHE(A2;1))<=57); 1; 2)Les chiffres 0-9 ont les codes Unicode 48 à 57. La formule assigne la priorité 1 aux références qui commencent par un chiffre, et 2 aux autres. Il te suffit ensuite de trier la colonne Priorité pour obtenir l'ordre voulu.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes erreurs fréquentes avec la fonction UNICODE
Tu rencontreras surtout #VALEUR!, presque toujours dans le même cas : tu pointes UNICODE sur une cellule vide ou sur "", et comme elle n'a aucun premier caractère à lire, elle abandonne. Blinde ta colonne avec =SI(A1=""; ""; UNICODE(A1)). L'autre surprise n'affiche aucune erreur : =UNICODE("ABC") te renvoie 65, le code du seul A, et si tu confonds avec CODE, tes émojis et tes caractères cyrilliques ou arabes ressortent faux car CODE plafonne aux 255 premiers caractères ASCII.
Erreur #VALEUR! sur une cellule vide
UNICODE ne peut pas traiter une chaîne vide. Si la cellule passée en argument est vide ou contient "", Excel retourne #VALEUR!.
Solution : Protège la formule avec une condition : =SI(A1=""; ""; UNICODE(A1)) pour retourner une cellule vide plutôt qu'une erreur quand A1 est vide.
Confondre UNICODE et CODE pour les caractères étendus
CODE ne fonctionne que pour les 255 premiers caractères ASCII. Pour les émojis, les caractères cyrilliques, arabes, chinois ou tout caractère au-delà du code 255, CODE peut retourner un résultat incorrect ou une erreur.
Solution : Utilise UNICODE à la place de CODE dès que tes données peuvent contenir des caractères internationaux ou des émojis : =UNICODE("😀") retourne 128512 alors que CODE échoue.
UNICODE retourne toujours le code du premier caractère, pas de tous
Beaucoup pensent que UNICODE analyse tout le texte. En réalité, seul le code du premier caractère est retourné. =UNICODE("ABC") retourne 65, le code de A, pas un résultat sur les trois lettres.
Solution : Pour analyser chaque caractère d'une chaîne, utilise STXT pour extraire un caractère à la position voulue : =UNICODE(STXT(A1; 2; 1)) donne le code du deuxième caractère, =UNICODE(STXT(A1; 3; 1)) du troisième, et ainsi de suite.
UNICODE vs CODE vs UNICAR vs CAR
Tu choisis entre quatre fonctions selon le sens du voyage : UNICODE et CODE transforment un caractère en numéro, UNICAR et CAR font le chemin inverse. Ce qui les départage, c'est la portée : prends UNICODE (et UNICAR pour repartir vers le caractère) dès que tes données touchent à un émoji, à du cyrillique, de l'arabe ou du japonais, car ils montent jusqu'à 1 114 111. Ne garde CODE et CAR, bloqués à 255, que pour du vieux pur ASCII ou des bricoles comme CAR(10) pour un retour à la ligne.
| Critère | UNICODE | CODE | UNICAR | CAR |
|---|---|---|---|---|
| Direction | Caractère vers code | Caractère vers code | Code vers caractère | Code vers caractère |
| Plage supportée | 0 à 1 114 111 (tout Unicode) | 0 à 255 (ASCII uniquement) | 0 à 1 114 111 (tout Unicode) | 0 à 255 (ASCII uniquement) |
| Émojis et alphabets étrangers | ✅ Oui | ❌ Non | ✅ Oui | ❌ Non |
| Cas d'usage principal | Données internationales, validation, détection | Compatibilité anciens systèmes | Génération de symboles, émojis | Retour à la ligne `CAR(10)`, tabulation |
Astuces avancées avec UNICODE
Détecte les caractères invisibles qui faussent tes RECHERCHEV
Un espace insécable (code 160) ou un espace de largeur zéro (code 8203) sont visuellement identiques à une cellule normale, mais font échouer silencieusement tes RECHERCHEV et tes comparaisons. =UNICODE(GAUCHE(A1;1)) te les trahit immédiatement : si le code est supérieur à 127 alors que la cellule « semble » contenir du texte latin normal, tu tiens ton coupable.
Nettoie ensuite avec SUPPRESPACE ou SUBSTITUE pour les retirer.
Valide des plages de caractères sans liste de référence
Plutôt que de lister tous les caractères autorisés dans une formule ou une validation de données, utilise UNICODE pour tester une plage de codes. Les chiffres 0-9 sont entre 48 et 57, les majuscules entre 65 et 90, les minuscules entre 97 et 122. =ET(UNICODE(A1)>=65; UNICODE(A1)<=90) vérifie en une formule qu'une cellule contient exactement une lettre majuscule.
Tu peux chaîner plusieurs ET/OU pour des règles métier plus complexes.
Questions fréquentes sur la fonction UNICODE
Quelle est la différence entre UNICODE et CODE ?
UNICODE supporte tous les caractères modernes (émojis, alphabets non-latins, symboles spéciaux) et retourne des codes jusqu'à 1 114 111, tandis que CODE est limité aux 255 premiers caractères ASCII.
Pour des données internationales ou des symboles modernes, utilise toujours UNICODE.
Comment utiliser UNICODE avec des émojis ?
Tu peux utiliser UNICODE avec des émojis : =UNICODE("😀") retourne 128512.
Attention : certains émojis sont composés de plusieurs codes Unicode combinés (comme les émojis avec différentes teintes de peau). UNICODE ne retournera que le code du premier élément de la séquence.
Comment obtenir le code Unicode de chaque caractère d'un mot ?
Combine UNICODE avec STXT pour extraire chaque caractère. =UNICODE(STXT(A1; 1; 1)) donne le premier caractère, =UNICODE(STXT(A1; 2; 1)) le deuxième, et ainsi de suite.
Tu peux aussi utiliser une formule matricielle ou Lambda pour automatiser l'opération sur toute la longueur du texte.
Pourquoi utiliser UNICODE plutôt que de regarder le caractère directement ?
UNICODE est essentiel pour la validation de données (vérifier si un caractère appartient à une plage spécifique), la détection de caractères invisibles ou spéciaux, le nettoyage de données importées, et la classification par langue.
C'est particulièrement utile lors de l'importation de données de sources externes où des caractères invisibles peuvent se glisser sans que tu le voies.
Est-ce que UNICODE fonctionne avec tous les caractères du monde ?
Oui. Unicode couvre plus de 140 000 caractères : latin, cyrillique, arabe, chinois, japonais, coréen, hiéroglyphes égyptiens, et même les émojis.
Excel utilise l'encodage UTF-16 qui couvre l'intégralité du standard Unicode actuel.
Pour aller plus loin
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

