Qu'est-ce que la fonction DECOCT ?
Tu t'en sers pour ne pas refaire à la main la conversion base 10 vers base 8, une méthode qui demande de diviser successivement par 8 et de relire les restes à l'envers. C'est la porte d'entrée pour lire ou construire des permissions Unix/Linux, où chaque chiffre octal encode trois bits (lecture, écriture, exécution).
Si tu travailles en administration système, en programmation bas niveau ou en cybersécurité, tu croiseras forcément l'octal. DECOCT te permet de calculer des permissions dynamiquement dans Excel, de générer des tables de conversion ou de documenter des configurations système sans jamais faire de conversion à la main.
Syntaxe
=DECOCT(nombre; [nb_caractères])Clique sur un argument pour aller à son explication.
Les nombres négatifs sont représentés en complément à deux sur 30 bits. Par exemple, =DECOCT(-1) retourne "7777777777" (10 caractères), ce qui peut surprendre si tu attends un signe moins.

Comprendre chaque paramètre de la fonction DECOCT
DECOCT prend d'abord le nombre à convertir, puis un second argument facultatif qui fixe la largeur du résultat. C'est ce nb_caractères qu'on néglige le plus souvent, alors que c'est lui qui te donne des permissions Unix bien alignées sur 3 chiffres (007 plutôt que 7) au lieu d'une colonne en dents de scie.
nombre
: le nombre décimal entier à convertir en octalIl peut être saisi directement ou provenir d'une référence de cellule. La plage acceptée est -536 870 912 à 536 870 911, ce qui couvre largement les besoins courants (permissions Unix, codes ASCII, masques de bits).
Si tu passes un nombre avec une partie décimale (ex. 7,9), Excel tronque silencieusement la partie après la virgule et convertit l'entier (7 dans ce cas). Pour arrondir au lieu de tronquer, utilise ARRONDI avant : =DECOCT(ARRONDI(A1;0)).
Attention : Au-delà de la plage -536 870 912 à 536 870 911, Excel retourne #NOMBRE!. Si tu travailles avec des valeurs potentiellement hors plage, protège-toi avec =SIERREUR(DECOCT(A1); "Hors plage").
[nb_caractères]
: le nombre de caractères à utiliser pour le résultat(facultatif)Si omis, Excel utilise le minimum nécessaire. Si spécifié, le résultat est complété avec des zéros non significatifs à gauche pour atteindre la longueur demandée.
Ce paramètre est essentiel pour formater uniformément des colonnes de valeurs octales, respecter un format de données technique (ex. permissions Unix toujours sur 3 chiffres), ou aligner visuellement des tableaux de conversion.
Attention : Si nb_caractères est trop petit pour contenir le résultat, Excel retourne #NOMBRE!. Par exemple, =DECOCT(100;2) échoue car 100 en octal est "144" (3 caractères).

Exemples pratiques pas à pas
Comment convertir une valeur décimale en code chmod avec la fonction DECOCT
Un audit de sécurité te réclame les droits de chaque fichier en notation chmod, mais l'inventaire qu'on t'a transmis ne contient que des entiers, 493 ou 420, parce que c'est sous cette forme que le système les stocke. Tu as la colonne décimale et tu veux le code chmod lisible en face. La fonction DECOCT bascule ces nombres en octal, la notation dans laquelle les permissions Unix se lisent naturellement.
- 1Dans une cellule, écris
=DECOCT(. - 2En 1er argument : clique sur la cellule qui contient la valeur décimale à convertir,
B2. Elle affiche493, les droits du fichierf1.shtels que le système les stocke. - 3En 2ᵉ argument : saisis le nombre de chiffres que doit compter le résultat,
3. Un code chmod en affiche toujours trois, un par groupe de droits, et ce second argument complète le résultat par des zéros à gauche quand la conversion en donne moins. - 4Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Les cinq fichiers de l'inventaire affichent alors leur code chmod en face de leur valeur décimale.
=DECOCT(B2; 3)493 ressort 755, soit 7 pour le propriétaire, 5 pour le groupe et 5 pour les autres. Le second argument garantit les 3 chiffres, y compris quand la valeur est petite.Comment repérer un fichier en 777 en combinant les fonctions DECOCT et SI
Ton inventaire compte des centaines de fichiers et un seul en 777 suffit à faire tomber l'audit, mais personne ne va relire une colonne d'entiers ligne par ligne pour le trouver. Tu as les valeurs décimales et tu veux une alerte franche, en clair, sur les seules lignes à problème. En imbriquant ta fonction DECOCT dans une fonction SI, tu convertis et tu testes dans la même cellule.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test qui doit repérer les fichiers ouverts à tous les droits,
DECOCT(B2; 3)="777". La conversion tourne à l'intérieur du test et se referme avant la comparaison. Les guillemets autour de777sont obligatoires, parce que la fonction DECOCT renvoie du texte et jamais un nombre. - 3En 2ᵉ argument : saisis le texte à afficher quand le test est vrai,
"Risque". Seulsf3.shetf14.shle déclenchent ici, car leur valeur511se convertit en777. - 4En 3ᵉ argument : saisis le texte à afficher quand le test est faux,
"OK". Les trois autres fichiers retombent dans ce cas, avec755pourf1.sh,600pourf5.shet640pourf18.sh. - 5Ferme la parenthèse et appuie sur Entrée. Une seule parenthèse reste à fermer, celle de la fonction SI, puisque la fonction DECOCT a été refermée dans son étape.
=SI(DECOCT(B2; 3)="777"; "Risque"; "OK")777, celui qui ouvre tous les droits à tout le monde. La comparaison porte sur du texte et non sur un nombre, car la fonction DECOCT renvoie toujours une chaîne : les guillemets autour de 777 sont donc obligatoires.
Les erreurs fréquentes avec la fonction DECOCT
Le #NOMBRE! est de loin ce que tu verras le plus avec DECOCT, et il vient de deux endroits : soit ton nombre sort de la plage -536 870 912 à 536 870 911, soit le nb_caractères demandé est trop court pour contenir le résultat (=DECOCT(100;2) plante car 144 tient sur 3 chiffres).
Viennent ensuite le #VALEUR! quand la cellule source contient du texte au lieu d'un nombre, et le piège des négatifs qui sortent en complément à deux (=DECOCT(-1) donne "7777777777") plutôt qu'avec un signe moins.
Erreur #NOMBRE! par dépassement de plage
Le nombre décimal dépasse la plage autorisée de -536 870 912 à 536 870 911. Ces limites correspondent à la représentation sur 30 bits utilisée par Excel pour les nombres octaux.
Solution : Vérifie que tes valeurs restent dans la plage autorisée. Si des valeurs hors plage sont possibles, protège la formule : =SIERREUR(DECOCT(A1); "Hors plage"). Pour la plupart des usages courants (permissions Unix, codes ASCII), ces limites sont largement suffisantes.
Erreur #NOMBRE! avec un nb_caractères trop petit
=DECOCT(100;2) génère une erreur car 100 en octal est "144" (3 caractères), qui ne peut pas tenir sur 2 caractères. Excel ne tronque pas silencieusement : il retourne une erreur.
Solution : Vérifie que nb_caractères est suffisamment grand, ou omets ce paramètre pour laisser Excel déterminer automatiquement la longueur. La longueur maximale acceptée est de 10 caractères.
Erreur #VALEUR! avec du texte non numérique
DECOCT nécessite une valeur numérique en entrée. Si ta cellule source contient du texte (par exemple "450 euros"), Excel ne peut pas faire la conversion.
Solution : Vérifie le type de tes données avec ESTNUM. Pour convertir du texte numérique en nombre avant la conversion, utilise =DECOCT(CNUM(A1)). Si les données sont incertaines, protège avec =SI(ESTNUM(A1); DECOCT(A1); "Non numérique").
Résultat surprenant pour les nombres négatifs
Les nombres négatifs sont représentés en complément à deux sur 30 bits. =DECOCT(-1) retourne "7777777777" (10 caractères) au lieu d'un signe moins suivi de la valeur.
Solution : Si tu veux une représentation lisible avec signe, utilise : =SI(A1<0; "-"&DECOCT(ABS(A1)); DECOCT(A1)). Cela affiche par exemple -7 au lieu de la représentation en complément à deux.
Questions fréquentes
Aucune différence fonctionnelle. DEC2OCT est le nom anglais de la fonction, DECOCT est utilisé dans les versions françaises d'Excel. Les deux effectuent exactement la même conversion de décimal vers octal.
L'octal reste utilisé principalement pour les permissions de fichiers Unix/Linux (comme chmod 755), dans certains protocoles réseau anciens et pour représenter des groupes de 3 bits de manière compacte. C'est un intermédiaire naturel entre le binaire (difficile à lire) et le décimal.
Chaque chiffre octal représente 3 bits de permissions : lecture=4, écriture=2, exécution=1. Par exemple, 755 : propriétaire=7 (4+2+1=tout), groupe=5 (4+1=lecture+exécution), autres=5. Utilise DECOCT pour convertir tes calculs de permissions en notation standard.
Oui, automatiquement et silencieusement. =DECOCT(7,9) retourne 7 (octal de l'entier 7), en ignorant le ,9. Pour arrondir au lieu de tronquer, enchaîne avec ARRONDI : =DECOCT(ARRONDI(A1;0)).
DECOCT accepte les entiers de -536 870 912 à 536 870 911. Ces limites correspondent à une représentation sur 30 bits. Au-delà, la fonction retourne #NOMBRE!. Pour les permissions Unix et la plupart des usages courants, ces limites ne posent pas de problème.
Pour aller plus loin
Continue sur ta lancée après la fonction DECOCT : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



