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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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
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.
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
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.
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