Rechercher : dans
Par :

[excel] NB si à deux critères?

Dernière réponse le 9 sep 2009 à 16:25:25 audrey, le 14 mar 2006 à 15:10:59 
 Signaler ce message aux modérateurs

Je voudrai faire la formule NB si avec deux critères. je dois ajouté un critère chiffré et un critère lettré.

Meilleures réponses pour « [excel] NB si à deux critères? » dans :
[VBA] Fonction NB.SI_Plus VoirFonction NB.SI_Plus sans limitation Cette fonction "Plus" permet d'appliquer la fonction NB.SI sans que l'on soit limité au nombre de paramètres imposés par Excel. Introduction Le classeur Dans un module général Télécharger le...
Eviter les doublons dans Excel VoirEviter les doublons lors d'un encodage dans un colonne de feuille excel: prendre le format conditionnel sur le première cellule sous les titres (par ex A2) choisir la formule suivante : =NB.SI($A$2:$A$21;A2)>1 mettre là la couleur de fond...

1

JvDo, le 14 mar 2006 à 16:14:50
  • +4

Bonjour,

personnellement j'utilise la fonction matricielle

{=Somme(si((mazone1=moncritèrenum)*(mazone2=moncritèrealpha)­;1;0))}
les accolades sont obtenues par une validation CTRL+SHIFT+ENTER de la formule.

cordialement

Répondre à JvDo

87

 ypip, le 9 sep 2009 à 16:25:25

Je connais rien sur excel .. mais je viens de trouver ce site sur le sujet.. peut etre ca t'aidera !
Excel toutes les Formules

Répondre à ypip

2

gbinforme, le 17 mar 2006 à 18:20:22
  • +2

Bonjour

je voudrai faire la formule NB si avec deux critères.

tu peux toujours faire : nb.si(plage;"x")+nb.si(plage;"y")

si c'est bien pour compter les occurences.


toujours zen

Répondre à gbinforme

3

peter45, le 18 mai 2007 à 22:51:11
  • +1

tu peux toujours faire : nb.si(plage;"x")+nb.si(plage;"y")
ça serait pas plutôt ?

si(nb.si(plage;"x")*nb.si(plage;"y")>0;1;0)

Répondre à peter45

4

Axl Rose, le 20 jui 2007 à 11:09:24
  • +1

C'est parfait !
Merci gbinforme :)

Répondre à Axl Rose

5

Alf-Red, le 29 aoû 2007 à 13:13:14
  • +1

La formule de gbin est bien + simple et repond aussi a ce que je voulais faire,
mais j'aurais prefere trouver un operateur "ou "
pour une formule de ce type:

=countif(plage,"text1" ou "text2")

desole j'utilise une version en anglais de excel..
le countif = nb.si
et la virgule remplace le ;
evidemment le "ou" serait a remplacer avec un operateur (un caractere) du type || ou un truc du genre.
qui permettrait d'eviter de retaper toute la sequence countif(plage1,xxx)+countif(plage1,xxx)
alors qu'on fait appel a la meme fonction et qui plus est, sur la meme plage...

Configuration: Windows XP
Internet Explorer 6.0

Répondre à Alf-Red

10

jlmartinez, le 16 sep 2007 à 14:32:57

Bonjour
c'est exactement ce que je souhaite faire mais je n'arrive pas à trouver la bonne formule.
sur une même plage identifier plusieurs critères X,X1,X2 ... ayant une même valeur numérique Y afin de ne pas faire la même formule; Ex : NB.SI(plage;"X")*Y+NB.SI(plage;"X1")*Y+NB.SI(plage;"X2")*Y+... PREND TROP DE PLACE. EXISTE-T-IL UNE FORMULE ? MERCI d'avance
jean-louis

Répondre à jlmartinez

11

gbinforme, le 17 sep 2007 à 00:36:51

Bonjour

sur une même plage identifier plusieurs critères X,X1,X2 ... ayant une même valeur numérique Y

Même après avoir relu plusieurs fois, je ne vois absolument pas ce que tu veux faire.

Des critères différents ayant la même valeur ?

De plus dans ta syntaxe tu mélanges des formules matricielles avec des formules simples ??

toujours zen

Répondre à gbinforme

6

Cris, le 6 sep 2007 à 11:27:45
  • +1

Je voudrais faire a peu près la meme chose, mais avec deux plages différentes.
J'ai essayé la formule de gbin et ca marche pas :( , ca additionne les chiffres de la plages 1 et ceux de la plage 2 alors que je voudrais les chiffres qui répondent à la condition de la plage 1 et la plage 2 en meme temps.
J'espere avoir expliqué assez clairement ce que je veux faire.

Répondre à Cris

7

gbinforme, le 6 sep 2007 à 12:34:14

Bonjour Cris

essaie ceci si j'ai compris ton souci : il faut que les 2 plages aient la même taille et que les valeurs "x" et "y" soient situées sur la même position relative.

=SOMME((plage1="x")*(plage2="y")*1)

c'est une formule matricielle à valider par ctrl +maj + entrée


toujours zen

Répondre à gbinforme

67

Reeko, le 19 fév 2009 à 23:23:54
  • +1

essaie ceci si j'ai compris ton souci : il faut que les 2 plages aient la même taille et que les valeurs "x" et "y" soient situées sur la même position relative. 
=SOMME((plage1="x")*(plage2="y")*1)


You saved my life !!! ;-)

MERCI. (ET VIVE LES FORUMS)

Répondre à Reeko

8

Cris, le 6 sep 2007 à 15:14:14

Merci gbin, la formule marche trop bien :)
Derniere petite requete, si je cherche une valeur "tout" dans la plage1, est ce que je met quelque chose entre les guillemets?
J'ai essayé de mettre * mais ca ne marche pas. J'ai aussi essayé de laisser les guillemets vides, sur 3 formules identiques que j'ai ecrite il n'y en a qu'une qui marche et pas les deux autres (!!!).
Merci d'avance, @+

Répondre à Cris

9

gbinforme, le 6 sep 2007 à 18:17:33

Bonjour

si je cherche une valeur "tout" dans la plage1, est ce que je met quelque chose entre les guillemets?

Si tu ne veux pas faire de sélection dans la plage1, formulé autrement, il me semble que :
=NB.SI(plage2;"y") devrait faire le calcul ?

J'ai essayé de mettre * mais ca ne marche pas.

Tout à fait normal, car il teste la valeur de la cellule égale au caractère "*" et non à n'importe qu'elle valeur.

J'ai aussi essayé de laisser les guillemets vides,

Dans ce cas, il recherche les cellules vides, sans aucune valeur.

sur 3 formules identiques que j'ai ecrite il n'y en a qu'une qui marche et pas les deux autres (!!!).

Elles doivent être "presque" identiques car les mêmes formules donnent les mêmes résultats comme en mathématique !

Bon test &@+

toujours zen

Répondre à gbinforme

12

jlmartinez, le 19 sep 2007 à 18:46:28

Bonjour

Pour être plus précis je souhaite dans le cadre d'un planning calculé le nembre d'heure mensuel que chaque personne fait.

ces heures ont une equivalence en lettre par exemple M (pour matin) = 7 H de 7h du matin à 14h, je dois attribué plusieurs M à plusieurs personnes dans différent lieu j'ai 6 lieux. Aussi pour identifier l'horaire à faire et le lieu j'utilise : M1,M2...M6. chaque association du M et d'une lettre vaut 7 heures aujourd'hui la formule pour avoir la somme de tout les M sur une ligne je fais formule suivante :
NB.SI(plage;"M1")*7+NB.SI(plage;"M2")*7+NB.SI(plage;"M3")*7+NB.SI(plage;"M4")*7+NB.SI(plage;"M5")*7+NB.SI(plage;"M6")*7

J'ai une dizaine de lettre différente encore a placer de la même manière. Je ne sais pas si c'est possible mais j'ai besoin de faire plus court car au bout 6 lignes de formules je ne peux plus enregistrer ma page.
existe-t-il quelque chose du type :
NB.SI(plage;"M1"+"M2"+...+"M6")*7 qui permettrait qu'à chaque fois qu'un M... existe la valeur 7 soit ajouté au total final ? et de la même manière pour B,N,L,S,D.... En sachant que B=6.5: N=10, total final sur la même cellule.

j'espère avoir été plus clair.
Merci d'avance de votre réponse
Cordialement
jean-louis

Répondre à jlmartinez

13

gbinforme, le 20 sep 2007 à 09:04:41

Bonjour

j'utilise : M1,M2...M6. chaque association du M et d'une lettre vaut 7 heures...
NB.SI(plage;"M1")*7+NB.SI(plage;"M2")*7+NB.SI(plage;"M3")*7...J'ai une dizaine de lettre différente encore.


Comment faire simple quand on a épuisé la complexité, il me semble que c'est l'objet de la question.
C'est pourtant plus simple de faire ainsi :

=NB.SI(plage;"M*")*7


Toutes les valeurs qui commencent par "M" seront prises en compte avec le caractère "*" et si tu ne veux que limiter sur un caractère quelconque il faut utiliser "?".

toujours zen

Répondre à gbinforme

14

jlmartinez, le 22 sep 2007 à 16:02:20

Bonjour

Merci cela marche du tonnerre, mais est ce qu'une autre méthode est possible ?

amicalement
jean-louis

Répondre à jlmartinez

15

Dom1984, le 26 sep 2007 à 11:22:45

Bonjour
j'ai également un problème de formule Excel
Voilà, j'ai deux colonnes:

A B

X 1
Y 0
Z 0
Z 4
Y 0
X 2

Je cherche une formule qui pour chaque lettre de la colonne A me compte le nombre de cases différentes de 0.
Ex: pour X: la formule doit inscrire 2, pour Y: 0, pour Z: 1

Pouvez vous m'aider?

Je vous remercie!!!

Répondre à Dom1984

16

gbinforme, le 26 sep 2007 à 18:43:18
  • +1

Bonjour

Je suppose que tes données sont de A1 à B24.
En D1 tu saisis le code que tu veux totaliser.
Dans la cellule de totalisation tu mets la formule suivante :

=SOMME(($A$1:$A$24=$D$1)*($B$1:$B$24<>0)*1)

et tu valides avec CTRL + MAJ + ENTREE cette formule matricielle
qui sera ainsi mise entre crochets { formule } et fonctionne très bien.

Si tu veux additionner les sommes de la colonne B, tu peux faire de la même façon :
=SOMME(($A$1:$A$24=$D$1)*($B$1:$B$24))


Tiens nous au courant des tests...

toujours zen

Répondre à gbinforme

17

simo, le 2 oct 2007 à 14:28:32

Bonjour, j'ai le même prbl sur excel :
voilà j'ai 2 plages b9:b86 contenant des chiffres 1 1 1 1 2 2 2 2 3 3 3 ......
et la plage t9:t86 contenant les chiffres 1 1 2 2 5 6 4 8 .....
je voudrais afficher le nombre de cellule contenant 1 sur la plage a9:a86 ET sur la plage t9:t86, pour mon cas ça devrai donné 2
Je vous remercie d'avance.
j'ai essayé nb.si mais ça marche pas sur 2 plages.

Répondre à simo

18

gbinforme, le 2 oct 2007 à 15:36:25
  • +2

Bonjour simo,

Si tu avais essayé de comprendre les formules précédentes tu aurais vu que c'était assez simple :

=SOMME(($B$9:$B$86=1)*($T$9:$T$86=1)*1)


et tu valides avec CTRL + MAJ + ENTREE cette formule matricielle
qui sera ainsi mise entre crochets { formule } et fonctionne très bien.


Excel regarde dans chacune des plages, qui doivent être de même taille, le nombre de cellules de même rang qui satisfont au critère (=1) et pour avoir le nombre on multiple par 1 (*1).

toujours zen

Répondre à gbinforme

19

simo, le 2 oct 2007 à 15:50:29

Si j'ai éssayé mais ça donne 0 au lieu de 2

Répondre à simo

20

gbinforme, le 2 oct 2007 à 18:50:07
  • +1

Bonjour

si j'ai éssayé mais ça donne 0 au lieu de 2

Vérifie la formule que tu as saisie et elle doit être incorrectement encodée.
Toutes les parenthèses sont obligatoires à la bonne position, mais je viens de vérifier et c'est correct.

L'addition se fait sur les cellules de même rang, c'est-à-dire qu'il faut à la fois b10=1 et t10=1, sinon c'est zéro.
sinon, si tu veux les 1 sur les deux plages quel que soit la position, c'est ceci :

=SOMME(($B$9:$B$86=1)*1)+SOMME(($T$9:$T$86=1)*1)


à toi de voir ce que tu recherches... et tiens nous au courant.

toujours zen

Répondre à gbinforme

21

simo, le 3 oct 2007 à 01:03:02

Merci, c logique cke tu m'a expliké là mé ça marche pas non plus si tu veux jt'envoi le doc poour voir toi même

Répondre à simo

22

gbinforme, le 3 oct 2007 à 09:46:44

Bonjour

OK tu peux le mettre sur http://cjoint.com/ et donner le code lien fourni et je regarderai ce qui ne fonctionne pas.

@+
toujours zen

Répondre à gbinforme

23

simo_lem, le 5 oct 2007 à 09:11:54

J'ai mis le doc sur cjoint.com, Merci

Répondre à simo_lem