Nb.si.ens avec un "OU"

Bonjour,

Je souhaiterais compter combien de personnes parmi celle qui possèdent une voiture possèdent également une moto OU un camion.

Je n'arrive pas à établir le ou avec la formule nb.si.ens(plage1;"Voiture"; et à partir d'ici j'aimerais rajouter ceux qui possèdent, également, une moto ou un camion).

Cela me ferait gagner énormément de temps. Je vous remercie d'avance.

Bonjour,

=nb.si.ens(voiture;camion) + nb.si.ens(voiture;moto)

ou bien

=sommeprod((a:a=voiture)*((b:b=camion)+(c:c=moto))

Crdmt

Salut DjiDji

Attention avec +

Ceux qui ont une moto et un camion vont être doublés : 1 + 1 = 2

Alors que : 1 * 1 = 1

Salut à toi !

Bonjour, Salut à tous,

La formule NB.SI.ENS fonctionnent avec une condition logique ET pas avec OU. Par conséquent, selon la demande, si elle est précise (le nombre de personnes possédant Une voiture ET un camion OU une moto), la 2ème formule de DjiDji59430 est correcte. Pour info la multiplication représente ET, l'addition représente OU (pas OU exclusif OUX en Excel) dans le calcul booléen. Il faut simplement faire attention aux priorités de calculs quand on utilise ce genre de codification, à savoir la multiplication est prioritaire par rapport à l'addition. Tout le monde le sait mais l'oubli est normal.

Edit : Je viens de tester , C'est MFerrand qui a raison, il ne donne pas le résultat attendu. Je continu à creuser

J'ai trouvé le bon résultat en testant les valeurs de calculs <> zéro. Essaye ça :

=SOMMEPROD((plage_voiture="voiture")*((plage_camion="camion")+(plage_moto="moto")>0))

Salut Raja, DjiDji...

Tu as raison, Raja, j'ai été un peu trop rapide hier soir.

La multiplication s'identifie au ET.

Mais le + ne permet pas le OU. La formule de DjiDji double bien ceux qui ont camion ET moto.

Il faut une condition supplémentaire pour produire le OU.

x3or1ds

Salut MFerrand,

Moi aussi j'ai tiré des conclusions rapides. As-tu regardé mon édit ? J'ai rectifié le tir. En fait, il aurait fallu faire un test de valeurs <> de zéro sur le résultat consolidé par tous ces calculs.

Je viens de voir... C'est une convergence...

Bonjour MFerrand , Bonjour Raja

Sur ce coup là, j'ai manqué de subtilité !

Et il m'a fallu du temps pour comprendre le >0 de la fin !

Salut DjiDji59430,

En fait la partie de la formule suivante :

(plage_camion="camion")+(plage_moto="moto")

peut ramener une matrice de nombre allant de 0 à 2. Le but est de ramener une matrice de 0 ou 1, d'où le test >0

Bonjour,

Raja a écrit :

En fait la partie de la formule suivante :

(plage_camion="camion")+(plage_moto="moto")

peut ramener une matrice de nombre allant de 0 à 2. Le but est de ramener une matrice de 0 ou 1, d'où le test >0

On peut aussi utiliser la fonction SIGNE qui a l'avantage de renvoyer un entier (0;1) au lieu d'un booléen (FAUX;VRAI).

SIGNE((plage_camion="camion")+(plage_moto="moto"))

Avec LibreOffice, je ne sais pas si cela fonctionne avec Excel, on peut aussi utiliser les fonctions BITAND, BITOR ou BITXOR :

BITXOR(plage_camion="camion";plage_moto="moto")

A+

Salut OOoise,

La formule SIGNE qui donne la matrice {0;1} dans le cas présent. Par contre BITXOR(BITOUEXCLUSIF) ne donnera pas le résultat attendu dans notre cas. Car le OU Exclusif ne compte pas quand les 2 éléments sont identiques. Mais BITOR(BITOU) convient parfaitement pour le cas.

Merci pour les formules.

Merci pour vos réponses ! j'ai essayé avec l'exemple de MFerrand et ça a fonctionné


Merci pour vos réponses ! j'ai essayé avec l'exemple de MFerrand et ça a fonctionné

Rechercher des sujets similaires à "ens"