Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Compter des dates sans doublon

17 réponses
Avatar
Marie70
Bonjour à tous !

J'ai des dates dans une colonne et je veux trouver le nombre de jours
(fonction NB, OK) le problème c'est que j'ai la même date plusieurs fois !
Comment faire pour compter une seule fois chaque date ?
Merci !!!!

10 réponses

1 2
Avatar
AV
Comment faire pour compter une seule fois chaque date ?


=SOMMEPROD(1/NB.SI(Dates;Dates))

AV

Avatar
anomymousA
bonjour,

avec des formules excel, je ne sais pas mais quelqu'un comme AV saurait
peut-être

avec VBA, en utilisant le programme suivant, tu obtiendras ce que tu souhaites
Dans l'exemple suivant j'ai testé 58596 dates dans la colonne A ce qui a
pris 0.3s avec une machine somme toute moyenne.
Notes au passage qu'il te comptera aussi les lignes vides. Si tu en as il te
faudra décompter 1.
Tu peux transformer en fonction personnalisée ce programme, ce qui te
permettra de l'utiliser dans une formule.

Dim Tabentree, Sandoublons As New Collection, I As Long

Tabentree = Range("A2:A58597").Value

For I = LBound(Tabentree, 1) To UBound(Tabentree, 1)
On Error Resume Next
Sandoublons.Add Tabentree(I, 1), CStr(Tabentree(I, 1))
Next

MsgBox Sandoublons.Count

A+


Bonjour à tous !

J'ai des dates dans une colonne et je veux trouver le nombre de jours
(fonction NB, OK) le problème c'est que j'ai la même date plusieurs fois !
Comment faire pour compter une seule fois chaque date ?
Merci !!!!


Avatar
Marie70
Merci mais ça ne fait pas ce que je veux !
Je me suis certainement mal expliquée,
J'ai une colonne avec des dates ex. :
01/01/05
02/01/05
03/01/05
02/01/05
Je voudrais trouver le résultat : 3
Merci



Comment faire pour compter une seule fois chaque date ?


=SOMMEPROD(1/NB.SI(Dates;Dates))

AV






Avatar
AV
Merci mais ça ne fait pas ce que je veux !
Je me suis certainement mal expliquée,
J'ai une colonne avec des dates ex. :
01/01/05
02/01/05
03/01/05
02/01/05
Je voudrais trouver le résultat : 3


C'est très exactement ce que fait la formule proposée !
Si tu as en A1:A4 les valeurs que tu as cité, la formule :
=SOMMEPROD(1/NB.SI(A1:A4;A1:A4))
te renvoie le résultat attendu : 3

AV

Avatar
Daniel.M
Bonjour Marie,

Avec tes données, la formule d'Alain donne effectivement 3.
Alain a donc été incompris (et tu ne te doutes pas du plaisir que ça me fait de
le souligner ici).

Bien sûr, il faut soit se définir un Nom Dates ou soit adapter la formule à la
plage: supposons tes données en A1:A4

=SOMMEPROD(1/NB.SI(A1:A4;A1:A4))

Salutations,

Daniel M.


"Marie70" wrote in message
news:
Merci mais ça ne fait pas ce que je veux !
Je me suis certainement mal expliquée,
J'ai une colonne avec des dates ex. :
01/01/05
02/01/05
03/01/05
02/01/05
Je voudrais trouver le résultat : 3
Merci



Comment faire pour compter une seule fois chaque date ?


=SOMMEPROD(1/NB.SI(Dates;Dates))

AV








Avatar
Daniel.M
=SOMMEPROD(1/NB.SI(A1:A4;A1:A4))


Pardon pour le doublon (la réponse d'Alain ne m'étant pas encore parvenue) mais
ça m'a quand même fait plaisir ... ;-)

Daniel M.

Avatar
AV
......... mais
ça m'a quand même fait plaisir ... ;-)


Pfffff....
Ca c'est vraiment petit !
....
J'allais quand même pas te priver de la réaction attendue !
;-)

AV

Avatar
anomymousA
bonjour,

j'ai tenté d'appliquer ta formule sur le même type de données. Pour peu de
données (1600 environ), le résultat est correct et relativement rapide.
Pour une masse de données importante, 58596 très exactement , base qui m'a
servi de test à la procédure sous VBA que j'avais communiquée à Marie, j'ai
abandonné, car le résultat se faisait vraiment trop attendre.
Selon toi , quelle est la limite de formules de cet ordre ?

Merci.

A+


Merci mais ça ne fait pas ce que je veux !
Je me suis certainement mal expliquée,
J'ai une colonne avec des dates ex. :
01/01/05
02/01/05
03/01/05
02/01/05
Je voudrais trouver le résultat : 3


C'est très exactement ce que fait la formule proposée !
Si tu as en A1:A4 les valeurs que tu as cité, la formule :
=SOMMEPROD(1/NB.SI(A1:A4;A1:A4))
te renvoie le résultat attendu : 3

AV







Avatar
AV
Selon toi , quelle est la limite de formules de cet ordre ?


SOMMEPROD est un calcul matriciel donc dès que la plage est grande le temps de
calcul est grand !
A part ça une base de données avec 58596 lignes renseignées ça court quand même
pas les rues ;-)
Quant à limite exacte c'est peut-être une affaire ..de puissance de machine

AV

Avatar
Daniel.M
Bonjour,

AMA, avec autant de données, ça va être lent, il n'y a pas de doutes. Car c'est
la fonction NB.SI() qui prend tout ce temps.

1.Avez-vous la possibilité de trier, ne serait-ce que temporairement, vos
données sur la colonne à compter?
2.Avez-vous accès à la librairie morefun.XLL de Laurent Longre?

Avisez pour les 2 questions et on pourra adapter.

Salutations,

Daniel M.

"anomymousA" wrote in message
news:
bonjour,

j'ai tenté d'appliquer ta formule sur le même type de données. Pour peu de
données (1600 environ), le résultat est correct et relativement rapide.
Pour une masse de données importante, 58596 très exactement , base qui m'a
servi de test à la procédure sous VBA que j'avais communiquée à Marie, j'ai
abandonné, car le résultat se faisait vraiment trop attendre.
Selon toi , quelle est la limite de formules de cet ordre ?

Merci.

A+


Merci mais ça ne fait pas ce que je veux !
Je me suis certainement mal expliquée,
J'ai une colonne avec des dates ex. :
01/01/05
02/01/05
03/01/05
02/01/05
Je voudrais trouver le résultat : 3


C'est très exactement ce que fait la formule proposée !
Si tu as en A1:A4 les valeurs que tu as cité, la formule :
=SOMMEPROD(1/NB.SI(A1:A4;A1:A4))
te renvoie le résultat attendu : 3

AV









1 2