J'aime garder mes feuilles de calcul Excel assez propres. Donc, souvent, je finis par écrire des déclarations comme celle-ci :
IF([formula x]=[value],"",[formula x])
Cela signifie essentiellement que si la formule correspond à un critère donné, il ne faut pas afficher le résultat - sinon, il faut afficher le résultat.
Dans certains cas, [formula x]
est répété sur une colonne entière de cellules et chaque cellule a une référence en [formula x]
qui pointe vers la cellule située au-dessus. Pour éviter les erreurs de formule, je dois ajouter une autre couche comme ceci :
IF(C2="","",IF([formula x]=[value],"",[formula x])
Cependant, surtout lorsque [formula x]
est très longue, cela peut aboutir à une formule finale qui semble beaucoup plus compliquée qu'elle ne l'est et qui devient beaucoup plus difficile à dépanner et à maintenir qu'elle ne devrait l'être.
Voici un exemple horrible...
Formule de base :
=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)
Ajout d'un blanking conditionnel :
=IF(C2="","",IF(IF(A3>=$E$11,C2+(C2*($F$2/12)-$E$9),C2+(C2*($F$2/12))-$E$7)<=0,"",IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)))
Une formule déjà très longue est plus que doublée en taille, juste pour que je puisse afficher un blanc (ou toute autre valeur choisie, d'ailleurs) lorsque cette même formule répond à une condition donnée. Si j'essaie de faire cela sur une ligne entière, en fonction de la formule de départ, je pourrais facilement rencontrer des erreurs de référence circulaire.
Existe-t-il un moyen d'auto-référencer une formule ou un argument existant dans la même cellule, ou peut-être une autre fonction ou fonctionnalité qui peut être utilisée pour obtenir ce résultat plus proprement ?
Une fonction qui fait ce que je cherche pourrait être comme ceci :
=FnName([base formula],[match condition],[condition result])
L'argument 1 est la formule de base, l'argument 2 est la condition que je souhaite faire correspondre. L'argument 3 est le résultat à afficher si la condition correspond. Si la condition n'est pas remplie, la fonction renvoie le résultat de la formule de base.