Si instruction qui retourne la fonction d'origine si false (similaire à iferror, ou substitute)

1

Si j'utilise IFERROR par opposition à IF (ISERROR, je peux sauvegarder en tapant la condition deux fois.

c'est à dire.

 =IFERROR(Long lookup,"not found")

est de loin préférable à

 =IF(ISERROR(long_lookup),"not found",long_lookup)

quand il y a une longue formule en cause.

Cependant pour quelque chose comme

 =IF(long_lookup=some_condition,"outtext",long_lookup)

Y at-il une formule générique où je peux taper

 =IF2(long_lookup,some_condition,"outtext")

pour des choses autres que des erreurs. Ou quelque chose de similaire, ce qui me permet de sortir la formule originale si une condition n'est pas remplie (plutôt que de simplement afficher FAUX).

Essentiellement, je veux éviter une formule inutilement dupliquée.

Une solution consiste à mettre la formule dans la colonne avant bien sûr et à utiliser

 =if(condition(a2),"out if true",A2))

Mais c'est pénible

EDIT: également similaire est = SUBSTITUTE (), mais cela ne fonctionne pas si la cellule entière que vous essayez de remplacer est également contenue en tant que sous-chaîne d'autres cellules, par exemple. si je voulais une recherche renvoyant "B" à la sortie "foobar", mais il était possible de renvoyer "Lot 1". Cela ne fonctionne pas non plus pour les blancs.

Some_Guy
la source
C'est très large. Il existe toutes sortes de solutions de contournement pour toutes sortes de situations. Par conséquent, il est difficile de donner une réponse, à moins de donner un exemple spécifique.
Raystafarian
Maintenant que j'ai modifié ma question, je vous suggère de nettoyer vos commentaires, comme je l'ai déjà fait.
Some_Guy
Voici quelques exemples d'un fil de discussion SO - pas grand chose que vous n'avez pas déjà mentionné, mais quelques idées.
Raystafarian
Voici un article cela parle de ce problème, mais nécessite VBA.
Raystafarian

Réponses:

0

En fait, c’est une très bonne question que je poserais aussi fréquemment, mais malheureusement, je ne pense pas actuellement qu’il existe une solution générale que vous puissiez utiliser.

Une solution de contournement consisterait à utiliser la fonction VBA, mais elle a aussi ses propres limites. Vous trouverez ci-dessous une fonction courte pour le faire (bien sûr, si vous voulez l’utiliser au sens large, il faut améliorer la gestion des erreurs, par exemple , pas seulement = ):

Function IfCondition(expression as Variant, criteria as Variant, ElseExpression)
  IF expression = criteria Then
    IfCondition = expression
  Else
    IfCondition = elseExpression
  End If
End Function
Máté Juhász
la source