Monsieur Excel
Pour tout savoir faire sur Excel !

22 mai 2016

Remarques sur la volatilité

La volatilité dans les formules d’Excel est un sujet délicat, comme nous allons le voir avec les trois rubriques ci-dessous.

Déclarations erronées de Microsoft

La formule =cellule("Filename"), selon un article de Microsoft, ne serait pas volatile. Et pourtant elle l’est…

Notez d’ailleurs que dans l’aide d’Excel, Microsoft vous indique que l’argument à utiliser avec un Excel français est "Nom de fichier". Si vous utilisez cet argument au lieu de "Filename", vous obtenez l’erreur #VALEUR !

Un Somme.si() délicat

La formule =somme.si(A1:A4 ;">0";B1) est volatile, alors que la formule  =somme.si(A1:A4 ;">0";B1:B4) ne l’est pas. De plus, de fait, ces deux formules feront référence à B1:B4.

Il semblerait que ce comportement volatile ait été ajouté pour donner des résultats exacts quand le dernier argument est modifié… Cette situation a été découverte par Luke Wisbey.

Une fonction volatile impacte la formule qui la contient

De façon tout à fait surprenante, quand on utilise dans une formule une fonction volatile,  la formule elle-même devient volatile même si la fonction volatile n’est jamais exécutée !

Ainsi, avec la formule =si(2>1;100;maintenant()), on obtient toujours le résultat 100 et on n’exécute donc jamais la fonction maintenant(). Et pourtant, la cellule contenant cette formule est marquée comme volatile dans Excel !

Si maintenant vous entrez =maintenant() en A1, la formule =si(2>1;100;A1) continuera à toujours renvoyer 100, mais ne sera plus marquée comme volatile dans Excel !

Pour en savoir plus sur le calcul dans Excel et sur la volatilité

Une lecture tout à fait intéressante, complémentaire de celles que je vous ai déjà conseillées dans les quatre derniers articles :