Eviter les erreurs de propagation (sur certaines formules)

Bonjour à tous,

Je vous partage une petite astuce que je ne connaissais pas, très pratique, trouvée ici : Why some Excel functions won't spill | Exceljet (Anglais). Voici ci-après le résumé de l'article.


Pour les personnes travaillant avec les nouvelles formules à propagation dynamique, vous avez peut-être pu remarquer que certaines fonctions ne supportent pas la propagation. Il y a en général 2 causes :

  • Le cas ou la fonction à propager renvoie une plage/array, auquel cas on se retrouve dans le cas de l'erreur #CALC : tableau imbriqué (nested array). Dans ce cas on ne peut pas faire grand-chose si ce n'est recréer le tableau final avec MAKEARRAY.
  • Mais parfois, même si la fonction à propager ne renvoie qu'une valeur unique, on a une erreur #VALEUR pas très claire… Dans ce cas, il existe une solution un peu saugrenue : ajouter un "+" devant la plage à évaluer.

Supposons que l'on dispose d'une liste de dates en A1:A10, par exemple via

=SEQUENCE(10;;AUJOURDHUI();30)

Si l'on écrit =FIN.MOIS(A1#;0) (ou =FIN.MOIS(A1:A10;0)), on obtient #VALEUR!. Excel n'arrive pas à propager FIN.MOIS sur chacune des dates. C'est un problème récurrent avec beaucoup de "vieilles" fonctions.

Il fallait alors obligatoirement passer par MAP ce qui alourdit vite les expressions

=MAP(A1#;LAMBDA(d;FIN.MOIS(d;0)))

La solution proposée dans l'article est assez simple, pour résoudre le problème il suffit d'écrire :

=FIN.MOIS(+A1#; 0) (ou =FIN.MOIS(+A1:A10; 0))

En fait le "+" force Excel à évaluer la plage (en tant que liste) avant d'appeler la fonction, et alors dans ce cas la propagation fonctionne (quasiment tout le temps, il y a quelques exceptions).

Notez que cela fonctionne également avec les anciennes fonctions matricielles (CSE: CTRL+SHIFT+ENTER) et dans un LET =LET(_mesDates;A1#;FIN.MOIS(+_mesDates;0)).

Voilà, en espérant que ce petit truc pourra vous aider si jamais il vous arrive de vous casser la tête devant un #VALEUR inexplicable.

Bonjour,
Un petit complément YouTube !
Cdlt.

lien : ExcelOffTheGrid

Rechercher des sujets similaires à "eviter erreurs propagation certaines formules"