Erreur #valeur avec DATEDIF

auregot

XLDnaute Nouveau
Bonjour,

Voilà bien 24h que je bloque sur une formule. Je viens de trouver l'erreur qui cause l'affichage #valeur pour enfin pouvoir vous demander si vous avez une solution ! (c'est déjà pas mal ! ;))

Voici la formule me permettant de calculer le nombre de personnes ayant, aujourd'hui, entre 45 et 54 ans :

=SOMMEPROD(
(DATEDIF(Naissance;AUJOURDHUI();"y")>=45)
*(DATEDIF(Naissance;AUJOURDHUI();"y")<=54)
)

Naissance correspond donc simplement à une colonne que j'ai nommée "Naissance". Le problème, je suppose, est que ma première ligne contient les titres des colonnes... ici "Date de naissance". Si je remplace "Date de naissance par "01/01/1960", par exemple, la formule fonctionne. S'il y a du texte, cela ne fonctionne pas.

Ce que je ne souhaite pas faire :
- Identifier la plage de données avec les cellules de début et de fin, exemple : F2:F3456 (dans ce cas, le jour où quelqu'un rajoutera une colonne avant, ma formule ne sera plus valide)

Je ne sais pas si ça peut se gérer avec des références relatives/absolues, je ne maîtrise pas assez ce fonctionnement.

Que faire ? :confused:

Merci d'avance à vous !!!
 

ERIC S

XLDnaute Barbatruc
Re : Erreur #valeur avec DATEDIF

Bonjour

le problème est dans le raisonnement , il faut savoir si tu te bases sur l'année de naissance ou sur la date anniversaire.

dans tes formules tu crées un trou dans ton comptage car tu regardes jusqu'au jour des 44 ans d'un côté, et de l'autre tu démarres au jour des 45 ans. Entre les deux, .......
 

ERIC S

XLDnaute Barbatruc
Re : Erreur #valeur avec DATEDIF

Bonjour

je te joins un bout de fichier sur lequel:

colonne D lignes 2, 3 et 4 les dates sont calculées par formules pour correspondre tout le temps à anniversaire la veille, le jour, ou le lendemain

en J, L et M, on raisonne en année calendaire : l'année des ... ans, sans se préoccuper de la date exacte

en N, P et Q, on regarde par rapport au jour anniversaire

en espérant ne pas m'être trompé

si l'année d'anniversaire te suffit, le sformules sont plus simples.

D'autre part j'ai remplacé tes noms par un "decaler()" qui permet d'ajuster à la liste sur ta feuille car sommeprod est extrêmement gourmand en ressources de calcul et cela peut amener à ralentir Excel
 

Pièces jointes

  • BDD ES(version 1).xlsx
    20.6 KB · Affichages: 51

auregot

XLDnaute Nouveau
Re : Erreur #valeur avec DATEDIF

Et bonjour !

Et bien voilà, c'est terminé !

Grâce à toi, j'ai pu combiner les propositions que tu m'as faites pour finalement déboucher sur la finale suivante :

=SOMMEPROD(
(H=1)
*(Age>=25)
*(Age<=44)
*((Accompagnement_Janvier_2011>0)+(Job_Cafe_Janvier_2011>0)+(Informatique_Janvier_2011>0)+(Acces_Libre_Janvier_2011>0)+(CV_Janvier_2011>0)+(Linguistique_Janvier_2011>0)+(Valorisation_Janvier_2011>0)+(Manifestation_Janvier_2011>0)>0)
)

Tu remarqueras que je n'utilise plus la date de naissance comme repère d'âge mais bel et bien une colonne nommée "Age", où j'ai utilisé la formule que tu m'as proposé dans ton dernier message :

=ANNEE(AUJOURDHUI())-ANNEE(Naissance)

Forcément, avec ce que j'avais mis juste avant, je ne pouvais rien en faire puisque c'était un mix de calcul numérique et de texte.

Du coup, avec cette seule formule, je suis maintenant capable de réaliser l'ensemble des calculs que je souhaitais effectuer... mais pour lesquels je n'avais pas la bonne méthode.

Tu remarqueras aussi que j'ai préféré laisser les noms de plages au lieu de la fonction DECALER(), tout simplement parce que je ne la maîtrise pas assez pour pouvoir la réutiliser comme il faut sur la totalité de mes calculs. Pour éviter un plantage d'Excel, j'utilise le mode de calcul manuel et non automatique.

Merci Eric pour ton aide précieuse !!!
 

Statistiques des forums

Discussions
312 224
Messages
2 086 409
Membres
103 201
dernier inscrit
centrale vet