XL 2013 Résolu - fonction NB.SI.ENS avec une référence de date

shushen

XLDnaute Nouveau
Bonjour à tous,

j'ai un fichier de données de type : nom, âge, sexe, date d'enregistrement etc.. et je souhaite faire un calcul du nombre de personnes qui ont par exemple 50 ans, de sexe masculin et avec comme date d'enregistrement le 23/01. J'ai choisi la fonction NB.SI.ENS, qui fonctionne bien quand je calcule le nb de personnes de 50 ans et de sexe masculin. Par contre quand je rajoute une condition de date ça ne fonctionne plus. J'ai essayé en changeant le format de la date mais rien n'y fait. Et chose étrange si au lieu de faire une formule >= au lieu de = sur la date ça fonctionne...

Ma formule ci dessous :
Code:
=NB.SI.ENS(Feuil3!C2:C9;"Homme";Feuil3!D2:D9;50;Feuil3!B2:B9;"=23/01/2020")

J'ai mis un fichier exemple en PJ si vous avez des idées.
J'espère avoir été assez clair :)

Bonne journée,
 

Pièces jointes

  • matrice stat.xlsx
    13.3 KB · Affichages: 9
Solution
Bonjour le Forum,
Bonne année,
Bonjour shushen,

A mettre en A2 de la feuille 2 de ton exemple

VB:
=SOMMEPROD((Feuil3!C2:C9="Homme")*(Feuil3!D2:D9*1=50)*(ENT(Feuil3!B2:B9)="23/1/2020"*1))

le *1 après Feuil3!D2:D9 parce que tes valeurs d'age ne sont pas numériques alors que le 50 lui l'est

La plage B2:B9 de la feuille 3 n'est jamais égale a la date que tu demandes puisque 23/01/2020 est en réalité la valeur 43853 et que par exemple tu as en cellule B2 de la feuille 3 la valeur 23/01/2020 08:34:55 qui donne en valeur réelle 43853,35758 c'est oppour cela que dans la formule je ne prend que la valeur entière de la colonne B de la feuille 3 par ENT(Feuil3!B2:B9) de plus toujours dans cette partie = à 23/1/2020 ne fonction pas il faut...

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonne année,
Bonjour shushen,

A mettre en A2 de la feuille 2 de ton exemple

VB:
=SOMMEPROD((Feuil3!C2:C9="Homme")*(Feuil3!D2:D9*1=50)*(ENT(Feuil3!B2:B9)="23/1/2020"*1))

le *1 après Feuil3!D2:D9 parce que tes valeurs d'age ne sont pas numériques alors que le 50 lui l'est

La plage B2:B9 de la feuille 3 n'est jamais égale a la date que tu demandes puisque 23/01/2020 est en réalité la valeur 43853 et que par exemple tu as en cellule B2 de la feuille 3 la valeur 23/01/2020 08:34:55 qui donne en valeur réelle 43853,35758 c'est oppour cela que dans la formule je ne prend que la valeur entière de la colonne B de la feuille 3 par ENT(Feuil3!B2:B9) de plus toujours dans cette partie = à 23/1/2020 ne fonction pas il faut multiplier cela par pour le transformer en numérique donc en valeur réelle 43853 d'ou (ENT(Feuil3!B2:B9)="23/1/2020"*1)

Cordialement
 

shushen

XLDnaute Nouveau
Re,

j'ai trouvé une solution entre temps, je ne sais pas si c'est la plus simple mais elle fonctionne :)

Mes données dates comportent une heure, et c'est pour ça que mes données ne remontaient pas. J'ai donc ajouté une condition dans la recherche de date : supérieur à 1h et inférieur à 23h sur la journée cible et ça fonctionne.

Ci dessous le code :
VB:
=NB.SI.ENS(Feuil3!C2:C9;"Homme";Feuil3!D2:D9;50;Feuil3!B2:B9;">=23/01/2020 01:00:00";Feuil3!B2:B9;"<=23/01/2020 23:00:00")
 

shushen

XLDnaute Nouveau
Bonjour Jocelyn,

bonne année merci :)

Je me doutais qu'il y avait une solution plus simple, je vais prendre la tienne elle sera plus facile à exploiter.

J'avais vu cette fonction sommeprod mais je ne pensais qu'elle s'appliquait à mon cas.

Merci beaucoup !
Bonne journée,
 

Discussions similaires

Réponses
17
Affichages
762

Statistiques des forums

Discussions
312 203
Messages
2 086 183
Membres
103 152
dernier inscrit
Karibu