OVH Cloud OVH Cloud

excel et les ensembles

3 réponses
Avatar
gpl
Bonjour,

Quelqu'un sait-il si quelqu'un a d=E9velopp=E9 des fonctions=20
vba qui permettent de travailler avec des ensembles.
Par exemple :

intersection(a2:z2;{3;2;5}) -> {3;2} si on trouve 3 et 2=20
comme valeurs dans l'une ou plusieurs des cellules de la=20
plage a2:z2

ou bien taille(intersection(a2:e2;f2:j2)) -> nombre de=20
valeurs dans l'intersection des deux ensembles.

Pour l'instant je construit des formules terriblement=20
alambiqu=E9es pour arriver =E0 faire des choses de ce type !

Ah si quelqu'un =E0 une id=E9e, je le remercie d'avance,
Cordialement,
Gary

3 réponses

Avatar
AV
ou bien taille(intersection(a2:e2;f2:j2)) -> nombre de
valeurs dans l'intersection des deux ensembles.


=NBVAL(plage1 plage2)

AV

Avatar
gpl
Merci Alain,

ceci donne le nombre total de valeurs présente dans la
plage composée des plage1 et plage2
en somme de l'union des deux ensembles
évidemment, en concevant que le même élément peux être
présent plusieurs fois dans l'ensemble.

et si je veux connaitre le nombre de valeurs différentes,
je peux utiliser la fonction de laurent longres :
nb.diff
qui me donnera pratiquement le nombre de valeurs dans
l'intersection des deux plages (étant donné que je pars du
principe que chaque ensemble ne peut contenir plus d'une
fois la même valeur)

et si je veux savoir si l'une des valeurs 22 23 ou 24
est présente dans l'une et l'autre plage ?
il me faudrait pouvoir faire
intersection((intersection (de plage 1 et plage 2); plage
3)

ou alors écrire une formule du genre :
=ET(OU(ESTNUM(EQUIV(22;PLAGE1;0));ESTNUM(EQUIV
(23;PLAGE1;0));ESTNUM(EQUIV(24;PLAGE1;0)));OU(ESTNUM(EQUIV
(22;PLAGE2;0));ESTNUM(EQUIV(23;PLAGE2;0));ESTNUM(EQUIV
(24;PLAGE2;0))))


Equiv : renvoi la position de la valeur cherchée dans la
plage (l'argument 0 interdit de renvoyer une valeur
approchée)
Estnum : si la valeur existe, equiv renvoi sa position qui
est un nombre
Si la valeur n'existe pas, equiv renvoi #N/A : Estna
permettrait de tester le contraire de estnum dans le cas
présent
Estnum renvoi donc vrai si la valeur est présente

Mais il faut avouer que c'est pas une solution très
commode.

Merci quand même,
Cordialement,
Gary



-----Message d'origine-----
ou bien taille(intersection(a2:e2;f2:j2)) -> nombre de
valeurs dans l'intersection des deux ensembles.


=NBVAL(plage1 plage2)

AV


.




Avatar
AV
et si je veux savoir si l'une des valeurs 22 23 ou 24
est présente dans l'une et l'autre plage ?
il me faudrait pouvoir faire


ou bien.....

=(OU(22=plage1)+OU(23=plage1)+OU(24=plage1)+OU(22=plage2)+OU(23=plage2)+OU(24=pl
age2))>0

AV