Formule Excel pour remplacer le texte si une cellule contient un certain mot

0

J'essaie de comprendre cette énorme formule et je me demande si quelqu'un peut m'aider.

J'ai une cellule B7 qui contient n'importe laquelle des valeurs (outdoor, indoor, 3g astroturf, etc.). Je veux qu'il cherche dans cette cellule pour voir si le texte dans cette cellule contient la valeur et si c'est le cas, remplacez-le, mais si ce n'est pas le cas, passez à autre chose et vérifiez la valeur suivante.

Simple, non?

Voici ce que j'ai jusqu'à présent:

=IF(SEARCH("outdoor",E7),SUBSTITUTE(B7,"<format>","outdoor"),"")=IF(SEARCH("indoor",E7),SUBSTITUTE(B7,"<format>","indoor"),"")=IF(SEARCH("9-hole",E7),SUBSTITUTE(B7,"<format>","9-hole"),"")=IF(SEARCH("18-hole",E7),SUBSTITUTE(B7,"<format>","18-hole"),"")=IF(SEARCH("club",E7),SUBSTITUTE(B7,"<format>","club"),"")=IF(SEARCH("venue",E7),SUBSTITUTE(B7,"<format>","venue"),"")=IF(SEARCH("astroturf",E7),SUBSTITUTE(B7,"<format>","astroturf"),"")=IF(SEARCH("3g-astroturf",E7),SUBSTITUTE(B7,"<surface>","3G astroturf"),"")=IF(SEARCH("grass",E7),SUBSTITUTE(B7,"<surface>","grass"),"")=IF(SEARCH("hard-macadam",E7),SUBSTITUTE(B7,"<surface>","hard macadam"),"")=IF(SEARCH("concrete",E7),SUBSTITUTE(B7,"<surface>","concrete"),"")=IF(SEARCH("clay",E7),SUBSTITUTE(B7,"<surface>","clay"),"")=IF(SEARCH("indoor",E7),SUBSTITUTE(B7,"<surface>","indoor"),"")=IF(SEARCH("artificial",E7),SUBSTITUTE(B7,"<surface>","artificial"),"")=IF(SEARCH("synthetic-rubber",E7),SUBSTITUTE(B7,"<surface>","synthetic rubber"),"")=SUBSTITUTE(B7,"<venue>",A7)

Toute aide massivement appréciée. Merci

MarcExcel
la source
Les mots de la liste n'apparaîtront-ils qu'une fois par cellule ou pourrait-il y avoir des multiples?
Scott Craner
1
Quel est le but de la formule? Un changement personnel sur les mots? Supposons que le mot "balles" soit mal orthographié et appelé "appelle". Vous pouvez Control + H, Finall tous les mots "appels", remplacez tous par "balles". Sonder la raison derrière cette formule.
ejbytes
Pourquoi ne pas mettre en place un écran d'impression pour montrer la relation explicitement. Vos mots ont laissé beaucoup de devinettes au spectateur. Si quelqu'un voit ce que vous essayez de faire, il / elle pourrait proposer une solution plus simple.
ejbytes
En outre, il serait utile d’énumérer ce que vous voulez explicitement, au lieu d’afficher une déclaration if de 20 else. Écrivez-le plutôt: Si B7 a le mot bœuf, remplacez bœuf par du poulet. Une liste de pseudo-code.
ejbytes

Réponses:

4

Mettez votre liste de mots dans d'autres cellules:

enter image description here

Ensuite, référencez ces cellules dans une formule matricielle:

=TRIM(SUBSTITUTE(A1,INDEX($G$1:$G$3,MATCH(TRUE,ISNUMBER(SEARCH($G$1:$G$3,A1)),0)),""))

Étant une formule matricielle, elle doit être confirmée avec Ctrl-Maj-Entrée lorsque vous quittez le mode édition au lieu de Entrée. Si cela est fait correctement, Excel mettra {} autour de la formule.

Cela ne fera que remplacer le premier mot de la liste trouvé dans la chaîne de texte cible. Si deux ou plusieurs mots de la liste sont présents, les autres restent.

enter image description here

Scott Craner
la source