Assigner une valeur texte en fonction du contenu d'une autre cellule

Fermé
Go3roke Messages postés 7 Date d'inscription dimanche 29 août 2021 Statut Membre Dernière intervention 1 octobre 2021 - Modifié le 29 août 2021 à 03:18
Go3roke Messages postés 7 Date d'inscription dimanche 29 août 2021 Statut Membre Dernière intervention 1 octobre 2021 - 29 août 2021 à 22:58
Bonjour,

Après de nombreuses recherches et de nombreuses tentatives jamais abouties, je me jette à l'eau sur ce forum.
Voici les données que je veux traiter :


Par exemple, dans la cellule B13 qui contient "Ks9d4c", je voudrais faire la recherche suivante :

Si la cellule contient A,K,Q,J ou T alors afficher "H" (High) et si la cellule contient 9,8,7 ou 6, alors afficher "M" (Medium) et si la cellule contient 5,4,3 ou 2 alors afficher "L" (Low).

Si je me réfère à mon exemple avec "Ks9d4c", je devrais obtenir donc dans une autre cellule HML et non LMH même si c'est la même chose.

J'espère avoir été clair dans ma demande. Sinon, n'hésitez pas à demander :)

En vous remerciant :)
A voir également:

6 réponses

PapyLuc51 Messages postés 4311 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 7 mai 2024 1 407
Modifié le 29 août 2021 à 07:26
Bonjour,

En premier la combinaison alphanumérique donnée en exemple dans la question n'est pas en B13 mais en B21

Si la combinaison des résultats doit être H puis M puis L il faux une concaténation de SI().

Il manque seulement un détail qu'est-ce qui doit apparaitre si l'une des conditions n'est pas remplie (par exemple toutes autres lettres que A-K-Q-J-T ou l'un des deux chiffres qui ne sont pas mentionnés le "0" ou le "1") ; rien ou autre chose ??

En attente des précisions.

Je fais toutefois cette proposition :

=SI(OU(NB.SI(B21;"*a*")>0;NB.SI(B21;"*k*")>0;NB.SI(B21;"*q*")>0;NB.SI(B21;"*j*")>0;NB.SI(B21;"*t*")>0);"H";"faux")&SI(OU(NB.SI(B21;"=*9*")>0;NB.SI(B21;"=*8*")>0;NB.SI(B21;"=*7*")>0;NB.SI(B21;"=*6*")>0);"M";"faux")&SI(OU(NB.SI(B21;"=*5*")>0;NB.SI(B21;"=*4*")>0;NB.SI(B21;"=*3*")>0;NB.SI(B21;"=*2*")>0);"L";"faux")

"faux" est à remplacer par ce qui doit apparaitre si la condition est fausse dans chaque SI()

Cordialement
0
Go3roke Messages postés 7 Date d'inscription dimanche 29 août 2021 Statut Membre Dernière intervention 1 octobre 2021
29 août 2021 à 14:00
Merci pour votre réponse très rapide !
En effet, c'est bien la cellule B21, autant pour moi.

Dans mes données, il n'y aura jamais d'autres lettres que celles mentionnées (les lettres en minuscules ne seront jamais prises en compte) et idem pour les chiffres 2 à 9.

Si je prends la cellule B24 "9s9d6c", je devrais avoir MMM. Comment faire pour obtenir MMM sachant qu'il n'y a aucune lettre A,K,Q,J ou T et aucun chiffre compris entre 2-5 ?

Merci encore pour votre éclairage.

Cordialement
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
Modifié le 29 août 2021 à 07:14
Bonjour,

une façon simple pour traiter "H"
=SI(NB.SI(B2;"*A*")>=1;"H";SI(NB.SI(B2;"*K*")>=1;"H";SI(NB.SI(B2;"*Q*")>=1;"H";SI(NB.SI(B2;"*J*")>=1;"H";""))))
idem pour "M"
=SI(NB.SI(B2;"*9*")>=1;"M";SI(NB.SI(B2;"*8*")>=1;"M";SI(NB.SI(B2;"*7*")>=1;"M";SI(NB.SI(B2;"*6*")>=1;"M";""))))
et pour obtenir "L"
=SI(NB.SI(B2;"*5*")>=1;"L";SI(NB.SI(B2;"*4*")>=1;"L";SI(NB.SI(B2;"*3*")>=1;"L";SI(NB.SI(B2;"*2*")>=1;"L";""))))

reste plus qu'à concatener les trois formules avec &
=SI(NB.SI(B2;"*A*")>=1;"H";SI(NB.SI(B2;"*K*")>=1;"H";SI(NB.SI(B2;"*Q*")>=1;"H";SI(NB.SI(B2;"*J*")>=1;"H";""))))&SI(NB.SI(B2;"*9*")>=1;"M";SI(NB.SI(B2;"*8*")>=1;"M";SI(NB.SI(B2;"*7*")>=1;"M";SI(NB.SI(B2;"*6*")>=1;"M";""))))&SI(NB.SI(B2;"*5*")>=1;"L";SI(NB.SI(B2;"*4*")>=1;"L";SI(NB.SI(B2;"*3*")>=1;"L";SI(NB.SI(B2;"*2*")>=1;"L";""))))

en plus court
=SI(NB.SI(B2;"*A*")+NB.SI(B2;"*K*")+NB.SI(B2;"*Q*")+NB.SI(B2;"*J*")>=1;"H";"")&SI(NB.SI(B2;"*9*")+NB.SI(B2;"*8*")+NB.SI(B2;"*7*")+NB.SI(B2;"*6*")>=1;"M";"")&SI(NB.SI(B2;"*5*")+NB.SI(B2;"*4*")+NB.SI(B2;"*3*")+NB.SI(B2;"*3*")>=1;"L";"")

il est possible de faire en plus court, mais déjà tu peux décortiquer cette proposition

0
Go3roke Messages postés 7 Date d'inscription dimanche 29 août 2021 Statut Membre Dernière intervention 1 octobre 2021
29 août 2021 à 16:10
Salut Mike,

Merci beaucoup pour ta réponse.
La formule est presque parfaite.

Imaginons le contenu d'une cellule "9s9d6s". Au lieu d'avoir "MMM", je n'aurais que "M" en résultat.
L'idée est de mettre autant de "M" que de caracarctères correspondants, en l'occurence dans cet exemple, les chiffres de 6 à 9.

Merci encore.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
Modifié le 29 août 2021 à 16:45
Bonur
esayez celle ci (à adapter car je ne suis pas sur de ma "liste" de condition)
Autant de SUBSTITUE que de condition,(11 ici)
exemple pour une valeur texte en A2:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;"A";"H");"K";"H");"Q";"H");"T";"H");"9";"M");"8";"M");"7";"M");5;"L");"4";"L");"3";"L");"2";"L")

crdlmnt

0
Go3roke Messages postés 7 Date d'inscription dimanche 29 août 2021 Statut Membre Dernière intervention 1 octobre 2021
29 août 2021 à 22:58
Merci beaucoup!
Ca répond parfaitement à mon problème.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PapyLuc51 Messages postés 4311 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 7 mai 2024 1 407
Modifié le 29 août 2021 à 18:06
Bon je me suis inspiré des deux formules de Mike-31 (salutations et pardon de te plagier) trouvées dans cette discussion

avec le premier code en B1 cette formule

=SOMMEPROD((STXT(B1;LIGNE(INDIRECT(1&":"&NBCAR(B1)));1)={"A"."K"."Q"."J"."T"})*1)&" "&SOMMEPROD((STXT(B1;LIGNE(INDIRECT(1&":"&NBCAR(B1)));1)={"9"."8"."7"."6"})*1)&" "&SOMMEPROD((STXT(B1;LIGNE(INDIRECT(1&":"&NBCAR(B1)));1)={"5"."4"."3"."2"})*1)


qui donne une concaténation de trois nombres séparé par un espace (par exemple "KsJdTc" donne la concaténation "3 0 0"
Il ne te reste plus qu'à faire hors champ un tableau de concordances avec toutes les concaténations possibles en colonne de gauche et le résultat souhaité en colonne de droite
pour pouvoir faire une RECHERCHEV()

=SIERREUR(RECHERCHEV(la formule ci-dessus;les deux colonnes du tableau de concordance en références absolues;2;0);"")

À toi de jouer maintenant

Reviens si problème en collant le lien d'une copie de ton fichier (sans les données confidentielles)
Pour mettre un fichier en partage :
Aller dans https://www.cjoint.com/
Cliquer sur "PARCOURIR" pour sélectionner le classeur ou "FAIRE UN GLISSER DEPOSER" dans la fenêtre ;
Cliquer sur le bouton "CREER LE LIEN"
Faire un "CLIC DROIT" sur le lien créé et cliquer sur "COPIER L'ADRESSE DU LIEN" ;
Sur le post Clic droit "COLLER".

ou dans https://mon-partage.fr/

Cordialement
0
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704
29 août 2021 à 20:42
Bonsoir à tous

A mon tour d'apporter ma contribution, avec une fonction personnalisée :
https://www.cjoint.com/c/KHDsPAhTb2r

Cdlmnt
Via
0