Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Alléger une formule

richard31

XLDnaute Occasionnel
J'ai u n gros fichier de gestion de demandes de MEP que j'ai mis en route depuis longtemps. Il fonctionne. Mais comme je ne suis très fort en Excel je suis sur que l'on peut alléger certaines formules très longues.
par ex :

J'ai écrit plusieurs conditions qui permet de prendre en compte les différentes possibilités d'écrire OK
SI(ET($AD16<>"";STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2)="ok");"Action réalisée";
SI(ET($AD16<>"";STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2)=" ok");"Action réalisée";
SI(ET($AD16<>"";STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2)=" OK");"Action réalisée";
SI(ET($AD16<>"";STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2)="OK");"Action réalisée";
SI(ET($AD16<>"";STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2)="ok");"Action réalisée";

Car je n'arrive pas l'intégrer à une seule ligne de formule; C'est possible ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Richard,
Les formules XL ne sont généralement pas sensibles à la casse, par ex avec un simple SI, les 4 formes de "ok" sont bien reconnues.

Essayez pour voir avec simplement :
VB:
=SI(ET($AD16<>"";STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2)="ok");"Action réalisée";"")
 

Jacky67

XLDnaute Barbatruc
Bonjour à tous
Essaye avec SUPPRESPACE
VB:
=SI(ET($AD16<>"";SUPPRESPACE(STXT($R16;CHERCHE(U$15;$R16)+NBCAR(U$15)+3;2))="ok");"Action réalisée")
Il serait sage de contrôler la saisie plutôt que de vouloir rectifier les erreurs dans les formules
 

richard31

XLDnaute Occasionnel
Merci ! je sais mais je vais rechercher l'information dans une cellule où il à un texte saisit de ce type :
INFRA : ok
MDW : ok 05/08/2021
BDD :
JE :
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
NFRA : ok
MDW : ok 05/08/2021
BDD :
Alors pour quoi ne pas utiliser :
VB:
=SI(ET($AD16<>"";NB.SI($R16;"INFRA*ok*")>0);"Action réalisée";"")
Pour détecter ok sur INFRA, ou encore :
Code:
=SI(ET($AD16<>"";NB.SI($R16;"*MDW*ok*")>0);"Action réalisée";"")
ou simplement un ok quelconque :
Code:
=SI(ET($AD16<>"";NB.SI($R16;"*ok*")>0);"Action réalisée";"")
 

richard31

XLDnaute Occasionnel
Rhooo merci encore je vais tester et essayer de comprendre tout ça ! ça va beaucoup m'aider ! tu es trop fort ^^
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…