Les classiques
#DIV/0!
Présence d'une division par 0 (zéro).
Une telle division est mathématiquement impossible.
B2 = 0 ou vide
=???? / B2 '=> #DIV/O!
#NOM?
Un nom de fonction ou ce qu'Excel prend comme nom de fonction intégrée est inconnu pour Excel.
= SOME(B2:B4) '=> Il manque un M à SOMME.
= SI(B2>0 ; "Positif" ; Négatif) '=> Il manque les guillemets de Négatif donc
' Excelcherche la fonction ayant ce nom.
= SOMME.COULEUR(...) '=> Cette fonction non standard n’est pas/plus
' disponible (complément désactivé ou non présent)
#N/A
Pas de résultat (non available = non disponible).
Souvent le résultat d'une fonction de recherche comme RECHERCHEX, RECHERCHEV, RECHERCHEH, EQUIVX, EQUIV... qui a été infructueuse.
Pour ne pas limiter l'affichage des graphiques au valeurs "disponibles", on utilise parfois dans des formules la fonction NA() ou la valeur #N/A pour avoir volontairement #N/A! comme résultat.
= SI(B2>AUJOURDHUI() ; #N/A ; C2)
#REF!
La référence à une cellules n'est pas correcte.
Cela se produit :
- Quand le classeur, la feuille n'existe pas (plus).
= 1 + Feuil3!B3
Devient en cas de suppression de Feuil3.
= 1 + #REF!B3
- En supprimant la ligne ou la cellule référencée.
= 10 + B3
Devient en cas de suppression (pas de l'effacement) de la ligne 3 ou de la colonne B ou de la cellule B3.
= 10 + #REF!
- En cas de recopie d'une formule.
= 10 + B3
Générera les formules suivantes en cas de recopie vers le haut.
= 10 + B2
= 10 + B1
= 10 + #REF!
B0 (zéro) n'existe pas !
A ma connaissance, il n'y a pas de moyen de récupérer les valeurs qui ont été remplacées par #REF (sauf si cela vient juste de se produire=> Annuler 😁).
#VALEUR!
- Souvent un argument de la fonction n'est pas correct (par exemple : du texte à la place d'un nombre).
= 1 + "Arnaud"
= GAUCHE("Arnaud" ; -1) '=> le 2eme argument doit être >= 0
= NB.SI.ENS(B2:B4 ; A1) '=> La valeur cherchée A1 dépasse la limite des 255 caractères
= NB.SI.ENS(B2:B4 ; 1 ; C2:10 ; 2) '=> Les plages n’ont pas la même taille
- Parfois la fonction est programmée pour renvoyer ce résultat dans certains cas.
= CHERCHE("X" ; "Arnaud") '=> X non trouvé
- Valeur non accessible car dans un classeur fermé.
= NB.SI.ENS('C:\MesDoc\[Test.xlsx]Feuil1'!$B$4:$B$7 ; 1)
NB.SI, NB.SI.ENS, SOMME.SI, SOMME.SI.ENS, MOYENNE.SI.ENS, MAX.SI.ENS...).
#NOMBRE!
- Nombre dépassant les limites d'Excel.
= 10^1000
- Argument non correcte dans une fonction.
= VPM(4%/12 ; 0 ; 10000)
Le nombre de versements (remboursements) est à 0.
##########...
- Généralement, c'est simplement la colonne qui est trop étroite pour afficher la valeur avec le formatage qui lui est appliquée.
=> Élargissez la colonne.
- La formule a généré un nombre négatif et un format Date ou HEURE est appliqué.
=> Changer de format, multiplier par -1
Remarque : La cellule est utilisable pour certains calculs même si elle affiche des # (la formule -5 heures sous forme de #### + 8 heures retourne comme résultat 3 heures).
Liées aux tableaux dynamiques
#PROPAGATION !
La formule dynamique n'a pas la place de s'étendre. Voir Formules de tableaux dynamiques, une nouvelle logique de conception.
#CALC!
Tableaux imbriqués
Illustration :
Tableau de départ
![Excel erreurs #CALC! > Tableaux imbriqués](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC1.png)
Objectif : Trouver TOUTES les années correspondantes à la valeur (ici 2) par personne !
![Excel, erreurs #CALC! > Tableaux imbriqués : Objectif](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC4-e1687159204976.png)
Formule en erreur
![Excel, erreurs #CALC! > Tableaux imbriqués](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC3.png)
= BYROW(B2:E3 ; LAMBDA(L ; FILTRE(B1:E1 ; L=H5)))
Cette formule tente de filtrer ligne par ligne le tableau de départ en utilisant comme critère la valeur de H5.
FILTRE renvoie 2 tableaux dynamiques/matrices à la fonction LAMBDA ce qui n'est pas autorisé avec BYROW/LAMBDA qui renvoient un tableau dynamique.
Souvent en tentant de corriger cette erreur on substitue le tableau par une plage renvoyée par une fonction et on déclenche l'erreur #CALC! Tableau de plage 🤪.
Une solution : Ne plus avoir de tableaux en les transformant en texte avec JOINDRE.TEXTE par exemple.
= BYROW(B2:E3 ; LAMBDA(L;JOINDRE.TEXTE(", ";;FILTRE(B1:E1;L=H5))))
![Excel, erreurs #CALC! > Tableaux imbriqués : Objectif](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC2-e1687158478643.png)
Tableau de plage
Illustration :
Tableau de départ
![Excel, erreurs #CALC! > Plage imbriqués : Tableau de départ](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC6.png)
Objectif : Afficher par ligne le nombre de valeur du tableau de départ tel qu'indiqué dans Nb Valeurs (nombre de colonne)
![Excel, erreurs #CALC! > Plage imbriqués : Objectif](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC7.png)
Formule en erreur
![Excel, erreurs #CALC! > Plage imbriqués : Résultat](https://1forme.fr/wp-content/uploads/2023/06/Excel_ErreursCALC8.png)
= MAP(F2:F3 ; LAMBDA(V;DECALER(B2;0;0;1;V)))
ou
= MAP(F2:F3 ; LAMBDA(V;PRENDRE(B2:D2;;V)))
DECALER ou PRENDRE retourne des plages ce qui n'est pas possible avec MAP/LAMBDA qui renvoient un tableau dynamique.
Avec cette simple modification ( x 1 ), on passe alors à l'erreur #CALC! Tableaux imbriqués.
= MAP(F2:F3 ; LAMBDA(V;DECALER(B2;0;0;1;V) * 1 ))
ou
= MAP(F2:F3 ; LAMBDA(V;PRENDRE(B2:D2;;V) * 1 ))
Chaque cas est différent, ici on peut faire ainsi.
= MAKEARRAY(2 ; 3 ; LAMBDA(L;C;SI(C>INDEX(F2:F3;L;1);"";INDEX(B2:D2;1;C))))
La 2eme fonction INDEX va "piocher" les valeurs dans le tableau de départ.
La 1ere fonction INDEX intercepte l'exécution du 2eme INDEX quand la colonne en cours de traitement dépasse Nb Valeurs.
Tableau vide
Si une fonction renvoie un tableau dynamique à une taille nulle.
= FILTRE(B2:B4 ; (B2:B4>0) * (B2:B4<0)) ' => Les valeurs doivent être > 0 et < 0 ce qui est impossible !
D'où souvent la présence d'un argument (Si_vide pour FILTRE) permettant de gérer ce cas.
Autres
- Trop de cellules pour Excel version Web.
Excel version Web limite à une taille de 10 000 cellules la taille des tableaux dynamiques.
- Oubli des paramètres pour la fonction LAMBDA en cas de saisie directe.
= LAMBDA(x ; x+1) ' => #CALC!
= LAMBDA(x ; x+1)(5) ' => 6
- La formule contient une erreur.
Dans certains cas d'erreur dans la formule renvoyant le tableau dynamique.
Les autres
#NUL!
Pas d'intersection de plage.
Généralement un oubli de ; (point-virgule) qu'Excel interprète comme une intersection de plage (fonctionnalité peu connue).
= SOMME(B2:B4 D2:D4)
Ici Excel cherche à faire la somme de la plage à l'intersection des plages B2:B4 et D2:D4.
#BUSY (CHARGEMENT_DONNEES)
- En attente des données externes ou d'une réponse.
#CONNEXION!
- Élément non disponible, n'existant pas (plus).
= IMAGE("https://1forme.fr/wp-content/uploads/2023/04/Logo.jpg")
#BLOQUÉ!
Lorsqu’une ressource en ligne n’est pas/plus accessible.
#CONNEXION se transforme en #BLOQUÉ!
Causes :
- Droits d'accès (licence, jeton, clé), utilisation http au lieu de https, ficher trop gros (Ko), image trop grande (pixels).
= IMAGE("https://1forme.fr/wp-content/uploads/2023/04/Logo.jpg")
=HISTORIQUE.ACTIONS("MSFT";"1/1/2020";"31/1/2021";;2;0;2;1) ' Déblocage dans le centre de sécurité
- Utilisation de Macro Excel 4.0 (désactivé par défaut).
#INCONNU!
Type de données lié non pris en charge.
#CHAMP!
Erreur récente pouvant avoir plusieurs origines.
Donnée non disponible
Erreur renvoyée par la fonction VALEUR.CHAMP par exemple.
Le champ lié à un type de données est non trouvé, non lu ou ce n'est pas un type de données lié.
![Excel erreur #CHAMP!](https://1forme.fr/wp-content/uploads/2023/06/Excel_Erreur-CHAMP-e1723056288809.png)
Non trouvé
= VALEUR.CHAMP(A2 ; "PIV") ' Erreur de saisie PIV au lieu de PIB
Pas un type de données
= VALEUR.CHAMP(A1 ; "PIB") ' Erreur car ici A1 (texte) n´utilise pas un type de données compatible (Boursier, géopgraphique...)
Non lu
= VALEUR.CHAMP(A5 ; "Espérance de vie") ' La valaur "Espérance de vie" n´est pas disponible pour la Vatican
Autre cas rencontré
Je n'ai pas d'explication (n'hésiter pas me faire des propositions en commentaire 😁).
Ici on a utilisé par erreur le "." (point) à la place de la "," (virgule) ET mis un espace devant le 0.
= LAMBDA(a; 0.2*a)(5) ' Erreur #CHAMP!
= LAMBDA(a;0.2*a)(5) ' Sans l´espace avant le 0, la validation devient impossible !
= LAMBDA(a; a*0.2)(5) ' Si on inverse, la validation devient impossible (message d´erreur)
= LAMBDA(a; 0,2*a)(5) => 1 ' Pas d´erreur même avec un espace devant le 0.
Il semble qu'Excel interprète " 0.2" comme un nom de champ !
#EXTERNE!
Si quelqu'un a des informations je suis preneur 😊.
Les fonctions de calculs liées aux erreurs
C2 => #N/A
= ESTERR(C2) => FAUX (VRAI pour toutes les autres valeurs d erreur)
= ESTNA(C2) => VRAI
= ESTERREUR(C2) => VRAI (VRAI pour toutes les valeurs d erreur)
= TYPE(C2) => 16 (pour toutes les valeurs d erreur)
= TYPE.ERREUR(C2) => 7 ( 1 : #NUL! 2 : #DIV/O 3 : #VALEUR!
4 : #REF! 5 : #NOM? 6 : #NOMBRE!
7 : #N/A 8 : CHARGEMENT_DONNEES
Codes suivant non documentés (au 07/2023)
9 : #PROPAGATION ! 10 : #CONNEXION!
11 : #BLOQUÉ! 12 : #INCONNU! 13 : #CHAMP!
14 : #CALC 19 : #EXTERNE!
Merci pour votre attention bienveillante.