Cumul fonction NBSI
Résolu
Bizz69
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je travaille actuellement sur un fichier excel de 20 000 lignes et j'aimerais "automatiser" une partie de ce que je dois faire pour gagner du temps.
Grossièrement mon fichier se compose comme suit :
Colonne A : nom des produits
Colonne B : catégories des produits
J'aimerais faire une formule avec : si la cellule A1 contient le mot "pomme" alors inscrire "fruit" dans la cellule B1 mais si la cellule contient le mot "crème" alors inscrire le mot "produit laitier" dans la cellule B1.
J'ai déjà une partie de la formule mais je n'arrive pas à trouver comment cumuler 2 SI.
=SI(NB.SI(A1;"*pomme*");"fruit";"")
Merci d'avance pour vos réponses.
Bonne soirée.
Je travaille actuellement sur un fichier excel de 20 000 lignes et j'aimerais "automatiser" une partie de ce que je dois faire pour gagner du temps.
Grossièrement mon fichier se compose comme suit :
Colonne A : nom des produits
Colonne B : catégories des produits
J'aimerais faire une formule avec : si la cellule A1 contient le mot "pomme" alors inscrire "fruit" dans la cellule B1 mais si la cellule contient le mot "crème" alors inscrire le mot "produit laitier" dans la cellule B1.
J'ai déjà une partie de la formule mais je n'arrive pas à trouver comment cumuler 2 SI.
=SI(NB.SI(A1;"*pomme*");"fruit";"")
Merci d'avance pour vos réponses.
Bonne soirée.
A voir également:
- Cumul fonction NBSI
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
8 réponses
Je ne comprends pas pourquoi vous voulez utiliser la fonction NB.SI qui compte le nombre de valeur selon un critère.
Dans votre cas, je crois que ce serait plutôt :
=Si(A1="pomme";"fruit";si(A1="crème";"produit laitier";""))
Selon les produits, la formule pourrait être très longue...
Dans votre cas, je crois que ce serait plutôt :
=Si(A1="pomme";"fruit";si(A1="crème";"produit laitier";""))
Selon les produits, la formule pourrait être très longue...
Bonjour,
Pourquoi NB.SI
simplement SI
=si(A1="pomme";"fruit";si(A1="créme";"produit laitier";si(A1="veau";"viande";"")))
ensuite tout dépend du nombre de conditionnelle SI, il sera peut être préférable d'utiliser d'autres fonctions
Pourquoi NB.SI
simplement SI
=si(A1="pomme";"fruit";si(A1="créme";"produit laitier";si(A1="veau";"viande";"")))
ensuite tout dépend du nombre de conditionnelle SI, il sera peut être préférable d'utiliser d'autres fonctions
Rachel...
Le NB.SI permet de détecter si un texte de A contient le mot Pomme lorsqu'il est encadré par des astérisques, même s'il n'est pas seul dans la cellule, ce que SI ne permet pas
pour info
"mot*" le texte commence par le mot
"*mot" le texte finit par le mot
"*mot*" le mot est dans le texte
si le mot a trouver est dans une cellule ex X1, il faut écrire:
"*"&X1&"*"
Ce type de code fonctionne avec le séparateur ; (NB.SI, RECHERCHEV EQUIV SOMME.SI ect..)
la formule serait donc:
=SI(NB.SI(A1;"*pomme*");"Fruit";SI(NB.SI(A1;"*crème*");"produit laitier";""))
crdlmnt
Errare humanum est, perseverare diabolicum
Le NB.SI permet de détecter si un texte de A contient le mot Pomme lorsqu'il est encadré par des astérisques, même s'il n'est pas seul dans la cellule, ce que SI ne permet pas
pour info
"mot*" le texte commence par le mot
"*mot" le texte finit par le mot
"*mot*" le mot est dans le texte
si le mot a trouver est dans une cellule ex X1, il faut écrire:
"*"&X1&"*"
Ce type de code fonctionne avec le séparateur ; (NB.SI, RECHERCHEV EQUIV SOMME.SI ect..)
la formule serait donc:
=SI(NB.SI(A1;"*pomme*");"Fruit";SI(NB.SI(A1;"*crème*");"produit laitier";""))
crdlmnt
Errare humanum est, perseverare diabolicum
C'est exactement ça ! Merci pour votre réponse.
Il s'agissait bien d'un mot recherché, d'où l'utilisation de la fonction NB.SI
J'ai essayé votre formule, mais excel me dit qu'il y a "trop d'arguments entrés pour cette formule"
Voici ma formule exacte :
=SI(NB.SI(B5597;"*chapeau*");"CHAPEAUX ET COIFFES";SI(B5597;"*perruque*";"PERRUQUES";""))
Que faire ?
Merci d'avance
Il s'agissait bien d'un mot recherché, d'où l'utilisation de la fonction NB.SI
J'ai essayé votre formule, mais excel me dit qu'il y a "trop d'arguments entrés pour cette formule"
Voici ma formule exacte :
=SI(NB.SI(B5597;"*chapeau*");"CHAPEAUX ET COIFFES";SI(B5597;"*perruque*";"PERRUQUES";""))
Que faire ?
Merci d'avance
Re,
Effectivement cela change tout, et combien de variété de produit as tu
Effectivement cela change tout, et combien de variété de produit as tu
Je travaille sur MAC excel 2011.
Je ne veux pas vous faire perdre votre temps à chercher d'autres solutions, car je ne connais pas du tout VBA.
Donc je vais appliquer ma petite formule au mieux et faire le reste à la mano.
En tout cas merci beaucoup à tous, vous m'avez retiré une jolie épine du pied ! Et bravo pour votre réactivité.
Bonne soirée.
Je ne veux pas vous faire perdre votre temps à chercher d'autres solutions, car je ne connais pas du tout VBA.
Donc je vais appliquer ma petite formule au mieux et faire le reste à la mano.
En tout cas merci beaucoup à tous, vous m'avez retiré une jolie épine du pied ! Et bravo pour votre réactivité.
Bonne soirée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
le nombre n'a jamais été un problème, c'est la répétition des formules qui alourdissent inutilement les fichiers et ralentissent l'exécution des calculs. je regarde si on peut passer sans VBA
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
le nombre n'a jamais été un problème, c'est la répétition des formules qui alourdissent inutilement les fichiers et ralentissent l'exécution des calculs. je regarde si on peut passer sans VBA
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
Alors si tu es fâché avec le VBA je te conseille de créer une petite base de données sur 2 colonnes exemple en K et L qui pourront être masquées ou se trouver sur une autre feuille.
colonne K le mot recherché et colonne L le mot qui doit être affiché
ensuite amuse toi à créer une première formule conditionnelle imbriquant maxi 7 si
=SI(NB.SI(A4;"*"&($K$1)&"*");$L$1;SI(NB.SI(A4;"*"&($K$2)&"*");$L$2;SI(NB.SI(A4;"*"&($K$3)&"*");$L$3;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;SI(NB.SI(A4;"*"&($K$5)&"*");$L$5;SI(NB.SI(A4;"*"&($K$6)&"*");$L$6;SI(NB.SI(A4;"*"&($K$7)&"*");$L$7;"")))))))
tu crées la même formule avec la suite des données K8 L8 etc
d'après tes post tu devrais avoir 4 voire 4 formules. il ne reste plus qu'à les mettre en cascade (les coller dans une cellule) et les séparant du signe & voir en gras la relance
exemple
=SI(NB.SI(A4;"*"&($K$1)&"*");$L$1;SI(NB.SI(A4;"*"&($K$2)&"*");$L$2;SI(NB.SI(A4;"*"&($K$3)&"*");$L$3;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;SI(NB.SI(A4;"*"&($K$3)&"*");$L$3;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;"")))))))&SI(NB.SI(A4;"*"&($K$8)&"*");$L$8;SI(NB.SI(A4;"*"&($K$9)&"*");$L$9;SI(NB.SI(A4;"*"&($K$10)&"*");$L$10;SI(NB.SI(A4;"*"&($K$11)&"*");$L$11;SI(NB.SI(A4;"*"&($K$12)&"*");$L$12;SI(NB.SI(A4;"*"&($K$13)&"*");$L$13;SI(NB.SI(A4;"*"&($K$14)&"*");$L$14;"")))))))
et comme cela tu peux aller jusqu'à 40 conditions mais il est possible d'obtenir un nombre illimité de conditionnelles avec d'autres astuces
explication sur les imbrications voir l'astuce que j'ai développé sur ce lien
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Alors si tu es fâché avec le VBA je te conseille de créer une petite base de données sur 2 colonnes exemple en K et L qui pourront être masquées ou se trouver sur une autre feuille.
colonne K le mot recherché et colonne L le mot qui doit être affiché
ensuite amuse toi à créer une première formule conditionnelle imbriquant maxi 7 si
=SI(NB.SI(A4;"*"&($K$1)&"*");$L$1;SI(NB.SI(A4;"*"&($K$2)&"*");$L$2;SI(NB.SI(A4;"*"&($K$3)&"*");$L$3;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;SI(NB.SI(A4;"*"&($K$5)&"*");$L$5;SI(NB.SI(A4;"*"&($K$6)&"*");$L$6;SI(NB.SI(A4;"*"&($K$7)&"*");$L$7;"")))))))
tu crées la même formule avec la suite des données K8 L8 etc
d'après tes post tu devrais avoir 4 voire 4 formules. il ne reste plus qu'à les mettre en cascade (les coller dans une cellule) et les séparant du signe & voir en gras la relance
exemple
=SI(NB.SI(A4;"*"&($K$1)&"*");$L$1;SI(NB.SI(A4;"*"&($K$2)&"*");$L$2;SI(NB.SI(A4;"*"&($K$3)&"*");$L$3;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;SI(NB.SI(A4;"*"&($K$3)&"*");$L$3;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;SI(NB.SI(A4;"*"&($K$4)&"*");$L$4;"")))))))&SI(NB.SI(A4;"*"&($K$8)&"*");$L$8;SI(NB.SI(A4;"*"&($K$9)&"*");$L$9;SI(NB.SI(A4;"*"&($K$10)&"*");$L$10;SI(NB.SI(A4;"*"&($K$11)&"*");$L$11;SI(NB.SI(A4;"*"&($K$12)&"*");$L$12;SI(NB.SI(A4;"*"&($K$13)&"*");$L$13;SI(NB.SI(A4;"*"&($K$14)&"*");$L$14;"")))))))
et comme cela tu peux aller jusqu'à 40 conditions mais il est possible d'obtenir un nombre illimité de conditionnelles avec d'autres astuces
explication sur les imbrications voir l'astuce que j'ai développé sur ce lien
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Bonjour Mike,
Je vois que vous avez pris du temps pour me trouver une petite astuce, merci beaucoup ;)
Je dois avouer que j'ai un peu pris peur en voyant cette dernière formule, mais en y regardant de plus près, cela ne me paraissait plus insurmontable.
J'ai donc pris la formule, remplacé les K et les L, puis collé dans mon nouveau tableau.
Malheureusement excel me dit qu'il y a un une erreur dans la formule (sûrement dû à une erreur de ma part).
Voici la formule que j'ai collé dans mon nouveau tableau :
=SI(NB.SI(A1;"*"&($chapeau$1)&"*");$CHAPEAUX ET COIFFES$1;SI(NB.SI(A1;"*"&($perruque$2)&"*");$PERRUQUES$2;SI(NB.SI(A1;"*"&($lunette$3)&"*");$LUNETTES$3;SI(NB.SI(A1;"*"&($boa$4)&"*");$BOA ET PLUMES$4;SI(NB.SI(A1;"*"&($adulte$5)&"*");$COSTUMES ADULTES$5;SI(NB.SI(A1;"*"&($moustache$6)&"*");$MOUSTACHES ET BARBES$6;SI(NB.SI(A1;"*"&($enfant$7)&"*");$COSTUMES ENFANTS$7;"")))))))
J'ai fait apparaître en gras ce qu'excel surligne en me disant qu'il y a une erreur.
Pourriez-vous me dire où je me suis trompé ?
Merci d'avance (encore)
Je vois que vous avez pris du temps pour me trouver une petite astuce, merci beaucoup ;)
Je dois avouer que j'ai un peu pris peur en voyant cette dernière formule, mais en y regardant de plus près, cela ne me paraissait plus insurmontable.
J'ai donc pris la formule, remplacé les K et les L, puis collé dans mon nouveau tableau.
Malheureusement excel me dit qu'il y a un une erreur dans la formule (sûrement dû à une erreur de ma part).
Voici la formule que j'ai collé dans mon nouveau tableau :
=SI(NB.SI(A1;"*"&($chapeau$1)&"*");$CHAPEAUX ET COIFFES$1;SI(NB.SI(A1;"*"&($perruque$2)&"*");$PERRUQUES$2;SI(NB.SI(A1;"*"&($lunette$3)&"*");$LUNETTES$3;SI(NB.SI(A1;"*"&($boa$4)&"*");$BOA ET PLUMES$4;SI(NB.SI(A1;"*"&($adulte$5)&"*");$COSTUMES ADULTES$5;SI(NB.SI(A1;"*"&($moustache$6)&"*");$MOUSTACHES ET BARBES$6;SI(NB.SI(A1;"*"&($enfant$7)&"*");$COSTUMES ENFANTS$7;"")))))))
J'ai fait apparaître en gras ce qu'excel surligne en me disant qu'il y a une erreur.
Pourriez-vous me dire où je me suis trompé ?
Merci d'avance (encore)
Re,
il faut retirer les dollars $ de chaque côté du mot et les guillemets, comme ceci "*chapeau*"
dans ma formule je faisais référence à une cellule contenant le critère c'est pour cela qu'il y avait "*"&$cellule$&"*"
pour ne pas te compliquer la vie, tu crées une imbrication de 6 ou 7 conditionnelles dans une cellule, puis dans une autre cellule tu crées une nouvelle imbrication qui prend la suite de la première imbrication puis dans une troisième cellule etc ...
reste plus qu"à copier chaque imbrication dans la même cellule en les séparant du symbole &
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
il faut retirer les dollars $ de chaque côté du mot et les guillemets, comme ceci "*chapeau*"
dans ma formule je faisais référence à une cellule contenant le critère c'est pour cela qu'il y avait "*"&$cellule$&"*"
pour ne pas te compliquer la vie, tu crées une imbrication de 6 ou 7 conditionnelles dans une cellule, puis dans une autre cellule tu crées une nouvelle imbrication qui prend la suite de la première imbrication puis dans une troisième cellule etc ...
reste plus qu"à copier chaque imbrication dans la même cellule en les séparant du symbole &
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
pour 20000 ligne cela doit faire un fichier assez lourd, il est certainement possible de l'alléger en nommant chaque imbrication. Contrôle la taille de départ de ton fichier
exemple tu vas dans définir un nom et tu saisis un nom pour ton premier champ exemple For_1 pour abréger Formule 1 et dans Fait référence à : colle la première imbrication concernant la première ligne
puis tu recrée un nouveau champ nommé For_2 dans lequel tu colles la deuxième imbrication, puis un troisième etc ...
sur ta première ligne à la place de ta première formule tu saisis = For_1+For_2+For_3 etc
puis tu incrémentes vers le bas et contrôle la taille de ton fichier cela devrait être significatif
je passe le statut de la discussion en résolu ce qui n'empêche pas de revenir sur la discussion pour un complément d'info
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
pour 20000 ligne cela doit faire un fichier assez lourd, il est certainement possible de l'alléger en nommant chaque imbrication. Contrôle la taille de départ de ton fichier
exemple tu vas dans définir un nom et tu saisis un nom pour ton premier champ exemple For_1 pour abréger Formule 1 et dans Fait référence à : colle la première imbrication concernant la première ligne
puis tu recrée un nouveau champ nommé For_2 dans lequel tu colles la deuxième imbrication, puis un troisième etc ...
sur ta première ligne à la place de ta première formule tu saisis = For_1+For_2+For_3 etc
puis tu incrémentes vers le bas et contrôle la taille de ton fichier cela devrait être significatif
je passe le statut de la discussion en résolu ce qui n'empêche pas de revenir sur la discussion pour un complément d'info
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.