Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de formule (Si plusieurs choix)

1 réponse
Avatar
jipaih
bonjour
colonne a : toujours mes "8 U 10", "8 U 11", etc, jusqu'à 160 environ (sans
guillemets;)) avec plusieurs lignes de chaque.
colonne b remplie.
en c je veux : si colonne a contient des donneées entre 8 U 10 et 8 U 60
par ex, alors écrire DI, pour 8 u 61 à 8 u 120 par ex écrire autre
chose...etc
J'ai essayé avec une formule contenant "ou" mais ca marche pas. Une astuce ?
Merci

--
Enlever NonNon dans l'adresse pour réponse directe. Merci.

1 réponse

Avatar
Michel Gaboly
Bonjour,

Le plus simple est probablement d'imbriquer des SI().

Si les intervalles étaient constants (1 à 60, 61 à 120, 121 à 180 par
exemple), la fonction CHOISIR() serait parfaite.

Pour éviter une formule inutilement compliquée, je te propose
d'exploiter la puissance - bien souvent méconnue - des noms :


Place-toi sur une des lignes contenant un de tes codes, va dans
Insertion, Noms, Définir... et crée le nom "Indice" (sans guillemet)
faisant référence à :

=CNUM(STXT(SUPPRESPACE($A1);5;3))

en remplaçant le "1" de "$A1" par le numéro de ligne de la cellule active.

SUPPRESPACE() permet de gérer les cas avec 1 ou plusieurs espaces
doubles ou multiples avant ou après le "U"

STXT() renvoie sous forme de texte, les chiffres après le "U ".

CNUM() convertit en numérique le résultat précédent.

NB - Attention au "$" : "$A1" est une référence mixte (absolue pour la
colonne, relative pour la ligne). Si tu as bien remplacé le "1" de la
formule par le numéro de ligne active, tu peux entrer dans une colonne
quelconque sur une ligne ayant un de tes codes en colonne A la formule

=Indice

et tu récupères la terminaison numérique du code situé sur la même ligne.

Par hypothèse, on veut récupérer "d" si l'indice dépasse 80, "c" si
l'indice dépasse 50, "b" si l'indice dépasse 20 et "a" sinon.

Voici la formule à appliquer :

=SI(Indice > 80;"d";SI(Indice > 50;"c";SI(Indice > 20;"b";"a")))

Avec les intervalles égaux prévus ci-dessus (1 à 60, 61 à 120 et 121 à
180), on aurait pu écrire :

=CHOISIR(ENT(Indice + 59) / 60;"a";"b";"c")

CHOISIR() se base sur le premier argument l'évalue, et renvoie
l'argument correspandant (N + 1ème argument si le premier est égal à N).

Pour renvoyer 3 valeurs, il faut que le premier argument soit égal à 1,
2 ou 3, ce qui s'obtient en ajoutant 59 à l'indice et en divisant le
résultat par 60, et en conservant la valeur entière.

Dis-moi si j'ai été assez clair.


bonjour
colonne a : toujours mes "8 U 10", "8 U 11", etc, jusqu'à 160 environ (sans
guillemets;)) avec plusieurs lignes de chaque.
colonne b remplie.
en c je veux : si colonne a contient des donneées entre 8 U 10 et 8 U 60
par ex, alors écrire DI, pour 8 u 61 à 8 u 120 par ex écrire autre
chose...etc
J'ai essayé avec une formule contenant "ou" mais ca marche pas. Une astuce ?
Merci




--
Cordialement,

Michel Gaboly
www.gaboly.com