Formule en fonction de texte (inclure et exclure)
Résolu
hadescedric
Messages postés
38
Date d'inscription
lundi 25 juin 2012
Statut
Membre
Dernière intervention
12 avril 2024
-
12 avril 2024 à 09:18
danielc0 Messages postés 842 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 2 mai 2024 - 12 avril 2024 à 14:43
danielc0 Messages postés 842 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 2 mai 2024 - 12 avril 2024 à 14:43
A voir également:
- Corinne copie un texte sur le web et le colle dans un document avec l'option "texte non formaté" (aussi appelée "texte sans mise en forme"). qu'est-ce qui est conservé ?
- Mise en forme conditionnelle excel - Guide
- Mettre un texte en majuscule - Guide
- Comment retranscrire un entretien audio en texte - Guide
- Texte barré whatsapp - Guide
- Texte argumentatif sur les avantages et les inconvénients du téléphone portable ✓ - Forum Mobile
2 réponses
danielc0
Messages postés
842
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
2 mai 2024
74
12 avril 2024 à 10:07
12 avril 2024 à 10:07
Bonjour,
Avec Excel 365 (si tu as une autre version, dis-le, c'est peut-être possible aussi) :
=LET(tbl;FRACTIONNER.TEXTE(A1;"-";);SI(A1="a";"pif";SI(ET(NBVAL(tbl)=2;INDEX(tbl;1)="a";INDEX(tbl;2)="b");"paf";SI(ET(ESTNUM(EQUIVX("a";tbl));ESTNUM(EQUIVX("c";tbl))*ESTNA(EQUIVX("d";tbl)));"boum";SI(ET(NBVAL(tbl)=2;INDEX(tbl;1)="a";INDEX(tbl;2)="b");"paf";SI(ET(ESTNUM(EQUIVX("a";tbl));ESTNUM(EQUIVX("d";tbl)));"plouf";""))))))
danielc0
Messages postés
842
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
2 mai 2024
74
12 avril 2024 à 11:17
12 avril 2024 à 11:17
Sinon, pour Excel 2013 et versions postérieures :
=SI(A1="a";"pif";SI(ET(NBVAL(FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R"))=2;INDEX(FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R");1)="a";INDEX(FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R");2)="b");"paf";SI(ET(ESTNUM(EQUIVX("a";FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R")));ESTNUM(EQUIVX("c";FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R")))*ESTNA(EQUIVX("d";FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R"))));"boum";SI(ET(NBVAL(FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R"))=2;INDEX(FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R");1)="a";INDEX(FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R");2)="b");"paf";SI(ET(ESTNUM(EQUIVX("a";FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R")));ESTNUM(EQUIVX("d";FILTRE.XML("<M><R>"&SUBSTITUE(A1;"-";"</R><R>")&"</R></M>";"//R"))));"plouf";"")))))
Daniel
Modifié le 12 avril 2024 à 11:47
J'ai effectivement 365, j'ai oublié de préciser. Merci pour ta formule ça fonctionne parfaitement !!! Ce qui est dommage c'est que je n'y comprends rien et que je ne saurai le modifier si besoin de rajouter un critère ...
12 avril 2024 à 14:43
La formule s'articule autour de la fonction FRACTIONNER.TEXTE qui découpe la chaîne de texte en autant de cellules :
La fonction LET me permet d'affecter la formule :
A la valeur "tbl". J'emploie ensuite "tbl" pour éviter de répéter la formule.
Après, j'use les fonctions classiques. Pour savoir si "A" est dans cette matrice de cellules, j'utilise EQUIVX. Si la valeur est trouvée, cette fonction renvoie une valeur numérique et #NA! autrement etc.
Daniel