Qu'est-ce que la fonction DECIMAL ?
DECIMAL te sert quand un export technique te livre des valeurs écrites dans une base que tu ne sais pas lire d'un coup d'œil (binaire, hexadécimal, octal), et que calculer la conversion à la main, puissance par puissance, prendrait un temps fou sur toute une colonne. Elle fait ce calcul pour toi, quelle que soit la base de départ, du moment qu'elle est comprise entre 2 et 36.
Concrètement, c'est elle qui transforme FF en 255, 1010 en 10, ou 77 en 63. Utile pour décoder des codes couleur HTML, analyser des permissions Unix, ou uniformiser des exports de systèmes qui ne parlent pas tous la même langue.

Comprendre chaque paramètre de la fonction DECIMAL
DECIMAL attend toujours ses deux arguments dans le même ordre : d'abord le nombre à convertir, puis la base dans laquelle il est écrit. Les deux sont obligatoires, et c'est leur cohérence qui compte : le texte doit être écrit avec les caractères autorisés par la base que tu indiques, sinon rien ne fonctionnera.
texte
: le nombre que tu veux convertir, écrit sous forme de textePar exemple, "1010" pour du binaire, "FF" pour de l'hexadécimal, ou "77" pour de l'octal. Attention : ce doit être du texte, pas un nombre. Si tu as un nombre dans une cellule, mets-le entre guillemets ou assure-toi qu'il est formaté en texte.
base
: la base dans laquelle ton nombre est écritCe doit être un nombre entier entre 2 et 36. Les bases les plus courantes sont 2 (binaire), 8 (octal), 10 (décimal) et 16 (hexadécimal). Pour les bases supérieures à 10, les lettres A à Z représentent les chiffres 10 à 35.
Attention : Si la base est inférieure à 2 ou supérieure à 36, Excel retournera une erreur #NOMBRE!. Vérifie bien que ta base est dans la plage valide.

Exemples pratiques pas à pas
Comment convertir du binaire en décimal avec la fonction DECIMAL
Tu passes en revue les registres d'un équipement dont l'export ne sort que des codes binaires, et rien n'est comparable tant que ces codes restent des suites de 0 et de 1. Chaque ligne porte son code binaire, son registre, son type et sa zone, et tu veux la valeur réelle de chaque code en face, pour repérer d'un coup d'œil ceux qui sortent de l'ordinaire. La fonction DECIMAL lit le code dans sa base et te rend le nombre correspondant, ligne après ligne.
- 1Dans une cellule, écris
=DECIMAL(. - 2En 1er argument : clique sur la cellule qui porte le code à convertir,
A2. Elle contient1010, que la fonction DECIMAL lit comme une suite de symboles et non comme le nombre mille dix. - 3En 2ᵉ argument : saisis la base dans laquelle ce code est écrit,
2, puisqu'il s'agit de binaire. C'est ce chiffre qui dit à la fonction DECIMAL comment interpréter les symboles, et le même1010vaudrait 520 si tu annonçais une base 8. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Les six registres reçoivent leur valeur décimale sans que tu additionnes une seule puissance de 2.
=DECIMAL(A2; 2)1010 comme un nombre écrit en base 2 et rend sa valeur en base 10, soit 10. Recopiée vers le bas, elle traduit chaque registre d'un coup et confirme que 11111111 vaut 255 (la valeur maximale sur 8 bits), sans que tu additionnes une seule puissance de 2.Comment convertir des nombres écrits dans des bases différentes avec la fonction DECIMAL
Tu rapproches chaque semaine les exports de trois outils qui n'écrivent pas leurs identifiants dans la même base, et le moindre total est faux tant que tout n'est pas ramené au même langage. Chaque ligne porte l'identifiant et la base dans laquelle il a été écrit, et tu veux une colonne unique de valeurs comparables. La fonction DECIMAL accepte de lire la base dans une cellule, donc elle s'adapte à chaque ligne sans que tu écrives une formule différente par outil.
- 1Dans une cellule, écris
=DECIMAL(. - 2En 1er argument : clique sur la cellule qui porte l'identifiant à convertir,
A2. Elle contient1A3tel qu'il est sorti de l'export, et la fonction DECIMAL ne cherche jamais à deviner toute seule dans quelle base il a été écrit. - 3En 2ᵉ argument : clique sur la cellule qui porte la base de la ligne,
B2, plutôt que d'écrire un chiffre en dur. La fonction DECIMAL y lit16, puis2sur la ligne suivante et36trois lignes plus bas. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Chaque identifiant est décodé dans sa propre base par une seule et même formule, et les six valeurs deviennent comparables entre elles.
=DECIMAL(A2; B2)1A3 est décodé en base 16 et vaut 419, tandis que ZZ, lu en base 36, monte à 1 295. Tes valeurs deviennent enfin triables et comparables entre elles.Comment convertir un code couleur hexadécimal avec les fonctions DECIMAL et STXT
La charte graphique te donne les couleurs en hexadécimal, mais l'outil dans lequel tu dois les saisir ne comprend que le RGB, et tu as toute une palette à passer avant la livraison. Chaque ligne contient un code du type #FF5733, où le dièse est suivi de trois paires collées : FF pour le rouge, 57 pour le vert, 33 pour le bleu. La fonction DECIMAL sait traduire chaque paire, à condition qu'on la lui présente isolée.
- 1Dans une cellule, écris
=DECIMAL(. - 2En 1er argument : écris le découpage qui isole la paire du rouge et referme-le,
STXT(A2; 2; 2). La cellule entière ne conviendrait pas, puisque#FF5733colle le dièse et les trois paires. Ce découpage part du deuxième caractère et en prend deux, ce qui donne exactementFF. - 3En 2ᵉ argument : saisis la base dans laquelle ces paires sont écrites,
16. Les codes couleur HTML sont en hexadécimal, où les lettres A à F prolongent les chiffres 0 à 9 jusqu'à 15, si bien que deux symboles suffisent à couvrir toutes les valeurs de 0 à 255. - 4Ferme la parenthèse et appuie sur Entrée. Pour le vert et le bleu, reprends la même formule en déplaçant seulement le point de départ du découpage,
4isole57et6isole33, la base ne changeant pas d'une composante à l'autre.
=DECIMAL(STXT(A2; 2; 2); 16)FF dans le code couleur, puis la fonction DECIMAL la lit en base 16 et rend 255. Répétée sur les trois paires, elle traduit #FF5733 en rgb(255, 87, 51), prêt à coller dans l'outil qui refuse l'hexadécimal.Comment éviter l'erreur #NOMBRE! avec les fonctions DECIMAL et SIERREUR
Tes références ont été saisies à la main quelque part en amont, et une poignée de lignes contiennent des caractères qui n'existent pas en hexadécimal, comme un G de trop ou un O majuscule tapé à la place d'un zéro. Il suffit d'une seule ligne fautive pour que la colonne se couvre d'erreurs #NOMBRE! et que le fichier devienne inexploitable pour ceux à qui tu l'envoies. En entourant la fonction DECIMAL d'un SIERREUR, tu convertis tout ce qui est convertible et tu signales proprement le reste.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris la conversion à surveiller et referme-la,
DECIMAL(A2; 16). La fonction DECIMAL lit la référence2Fen base 16 et rend 47, mais elle refuse tout symbole étranger à la base annoncée : leGde3G7et leOde1O5n'existent pas en hexadécimal, où l'on s'arrête àF. - 3En 2ᵉ argument : saisis le texte qui prendra la place de l'erreur,
"Référence invalide". Les guillemets sont ce qui demande à Excel d'afficher ce message tel quel, et il n'apparaît que sur les lignes où la conversion a échoué. - 4Ferme la parenthèse et appuie sur Entrée. Celle de la fonction DECIMAL ayant déjà été refermée à l'étape précédente, il n'en reste qu'une à écrire. Recopie ensuite la formule vers le bas pour couvrir les six références.
=SIERREUR(DECIMAL(A2; 16); "Référence invalide")2F en 47 sans difficulté, et SIERREUR n'a alors rien à faire. Deux lignes plus bas, 3G7 déclenche l'erreur #NOMBRE! (le G n'existe pas en base 16, où l'on s'arrête à F) et SIERREUR la remplace par ton message : la colonne reste lisible et les lignes fautives sautent aux yeux.
Les erreurs fréquentes avec la fonction DECIMAL
Tout ce qui cloche avec DECIMAL finit presque toujours sur le même code : #NOMBRE!. Le cas que tu croiseras le plus, c'est un caractère qui n'existe pas dans la base demandée, comme un 8 glissé dans un nombre octal ou un G en hexadécimal.
Les deux autres pièges sont plus sournois car ils ne lèvent pas forcément d'erreur visible : oublier les guillemets autour du texte, et confondre DECIMAL avec sa réciproque BASE, qui fait exactement le chemin inverse.
Caractères invalides pour la base choisie
Excel retourne #NOMBRE! quand le texte contient un caractère qui n'existe pas dans la base spécifiée. Par exemple, le chiffre 8 dans un nombre octal (base 8), ou la lettre G en hexadécimal (base 16).
Solution : Vérifie que chaque caractère de ton texte est valide pour la base. En octal, seuls 0-7 sont autorisés. En hexadécimal, 0-9 et A-F (ou a-f). Corrige le texte source ou filtre les lignes invalides avec =SIERREUR(DECIMAL(A1; 16); "invalide").
Oublier que le premier paramètre doit être du texte
Si tu saisis un nombre sans guillemets dans la formule, Excel peut l'interpréter différemment de ce que tu attends, surtout pour les nombres avec des zéros initiaux ou des valeurs hexadécimales contenant des lettres.
Solution : Mets toujours ton nombre entre guillemets ("1010") ou stocke-le dans une cellule formatée en texte. Utilise =DECIMAL("1010"; 2) plutôt que =DECIMAL(1010; 2) pour lever toute ambiguïté.
Confondre DECIMAL et BASE (sens inverse)
DECIMAL convertit VERS le décimal (base 10). Si tu veux faire l'inverse, c'est-à-dire convertir un nombre décimal vers une autre base, utilise BASE, pas DECIMAL.
Solution : Souviens-toi du sens : DECIMAL prend une autre base et retourne du décimal. BASE prend du décimal et retourne une autre base. Pour passer du binaire 1010 au décimal : =DECIMAL("1010"; 2). Pour passer du décimal 10 au binaire : =BASE(10; 2).
Base hors de la plage valide (< 2 ou > 36)
DECIMAL n'accepte que des bases entre 2 et 36. Une base de 1 ou 37 provoque #NOMBRE! sans autre indication.
Solution : Vérifie que ta base est un entier entre 2 et 36 avant d'appeler DECIMAL. Si la base vient d'une cellule, ajoute une validation des données ou un =SI(ET(B1>=2; B1<=36); DECIMAL(A1; B1); "Base invalide").

Astuces avancées avec DECIMAL
Extraire une portion de code avant de convertir
Quand ton identifiant contient un préfixe (0x, #, 0b...) suivi du nombre, combine DROITE ou STXT avec DECIMAL pour isoler la partie utile avant de convertir. Par exemple, =DECIMAL(DROITE("0xFF"; 2); 16) extrait les deux derniers caractères FF puis les convertit en 255.
Tu peux aussi extraire le composant bleu d'un code couleur HTML : =DECIMAL(DROITE("#3498DB"; 2); 16) donne 219.
Créer un convertisseur universel entre deux bases quelconques
Combine DECIMAL et BASE pour convertir d'une base quelconque vers une autre sans passer manuellement par le décimal. =BASE(DECIMAL("1010"; 2); 16) convertit directement du binaire vers l'hexadécimal et retourne "A".
Cette technique fonctionne pour n'importe quelle paire de bases entre 2 et 36.
Valider silencieusement une entrée dans une base donnée
Utilise SIERREUR autour de DECIMAL pour vérifier si une cellule contient un nombre valide dans une base donnée, sans faire planter toute la formule. =SIERREUR(DECIMAL(A1; 2); "Binaire invalide") retourne le nombre si A1 est un binaire correct, ou le message d'erreur sinon.
Idéal pour valider des imports ou des saisies utilisateur avant de les traiter.
Questions fréquentes
DECIMAL convertit un nombre en base quelconque vers la base 10 (décimale), tandis que BASE fait l'inverse : elle convertit un nombre décimal vers une autre base. Ce sont deux fonctions complémentaires. Utilise DECIMAL quand tu veux "lire" un nombre dans une autre base, et BASE quand tu veux "écrire" un nombre dans une autre base.
Tu peux utiliser n'importe quelle base de 2 (binaire) à 36. Les bases courantes sont 2 (binaire), 8 (octal), 10 (décimal) et 16 (hexadécimal). Pour les bases supérieures à 10, les lettres A-Z représentent les valeurs 10-35. La base 36 utilise donc tous les chiffres 0-9 et toutes les lettres A-Z, ce qui permet d'encoder des identifiants courts.
Non, DECIMAL ne gère pas directement les nombres négatifs. Si tu as besoin de convertir des nombres négatifs, tu devras traiter le signe séparément (par exemple avec SI pour détecter un tiret au début) et l'appliquer au résultat de DECIMAL.
Cette erreur apparaît dans plusieurs cas : si le texte contient des caractères invalides pour la base spécifiée (par exemple 8 dans un nombre octal ou G en hexadécimal), si la base n'est pas entre 2 et 36, ou si le résultat dépasse les limites numériques d'Excel.
Vérifie d'abord les caractères de ton texte, puis la valeur de la base.
Une adresse IP (comme 192.168.1.1) est déjà écrite en décimal avec une notation pointée. Pour la convertir en un nombre unique, tu ne peux pas utiliser DECIMAL directement.
Tu dois séparer les quatre octets, puis calculer : premier×256³ + deuxième×256² + troisième×256 + quatrième. C'est plus complexe mais faisable avec une combinaison de fonctions texte et mathématiques.
En hexadécimal, A=10, B=11, C=12, D=13, E=14 et F=15. FF se calcule donc : F×16 + F = 15×16 + 15 = 240 + 15 = 255.
C'est la valeur maximale sur 8 bits, ce qui explique pourquoi #FFFFFF est le blanc en HTML (rouge=255, vert=255, bleu=255).
Pour aller plus loin
Continue sur ta lancée après la fonction DECIMAL : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir




