NB.VAL NB.SI etc compter la présence de dates

Signaler
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
-
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
-
Bonjour,

J'ai un fichier d'articles qui contient en col A des réf et en colonne B et C des dates.
Ce sont les dates de MAJ des articles
Je veux compter le nombre total d'aticles mis à jour et le comparer au nombre total d'articles.

Ma colonne de date MAJ 2 est définie en affichage "date" mais quand je fais le total avec NB.VAL ou NB.SI, je trouve toujours le nombre total de lignes et pas seulement celles qui sont renseignées, donc pas vides



il y a 3197 articles; seul un petit nombre a une date de mise à jour

En ligne 3199: =NBVAL(C2:C3198), résultat 3197 !
et en ligne 3200: =NB.SI(C2:C3198;">0"), résultat 3 !

alors qu'il y en a plusieurs centaines !

Incroyable ! c'est magique ! j'y perds mon latin

Configuration: Windows / Chrome 83.0.4103.106

11 réponses

Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355
Bonjour
pour les dates
veillez à ce que vos dates de mise à jour soient bien des valeurs numériques; Vérifiez en formatant la colonne C en nombre standard qui doit vous afficher une valeur numérique
Ou alors essayez avec:
=NB.SI(C2:C3198;"<>") qui devrait compter tous les types de format
pour le NBVAL, s'il ne vous donne pas le nombre de cellules remplies, c'est anormal, et sans le fichier nous ne pourrons pas vous dire pourquoi!
crdlmnt

Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
Je suis d'accord avec vous !
j'avais d'abord tenté le NBVAL, qui donne 3196, soit tout. or il n'y a pas de formules ds les cellules, il n'y a que des résultats.
S'il y avait eu des formules encore...
j'y crois pas beaucoup mais je vais relancer le PC.
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355 >
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020

pouvez vous déposer e fichier selon les infos de mon dernier message ici:
https://forums.commentcamarche.net/forum/affich-36719672-nb-val-nb-si-etc-compter-la-presence-de-dates#6
Messages postés
5469
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
2 juillet 2020
453
Bonjour

Sans chercher regarder en mettant entier de la date sans les heures minutes
Messages postés
29123
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 juillet 2020
6 495
Bonjour,

Pour les non vides voir
 =NB.SI(A1:A11;"<>") 


ou =NB.SI(A1:A11;">=01/01/2000")

Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
=NB.SI(C2:C3198;"<>")
donne la totalité des cellules
+NB.SI(A1:A11;">=01/01/2000") DONNE 3 !
il y a à vue d'oeil des centaines de dates, toutes fomatées pareil
=NB.SI(C2:C3198;"<>") donne 3196, soit tout le monde.

je ne comprends rien.
ou est le lien pour envoyer un fichier ?
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
Merci les gars ! des bonnes idées !
voila le fichier...mais je vois pas comment l'attacher ?
je ne peux attacher qu'une image !
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
image encore de ce que j'ai
pas reussi à kpindre l efichier, je ne vois que pour joindre une photo
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355
Voyez ici:
http://mon-partage.fr
  • allez sur le site
  • bouton en haut: parcourir > sélectionnez le fichier
  • bouton en bas : "uploader"
  • revenez en haut copiez le lien
  • revenez le coller ici dans un prochain message

Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
Merci, c'est pas mal je ne connaissais pas cet outil.
en fait , je pensais que j'avais loupé une fonction ds le forum mais je comprends qu'elle n'existe pas.
Donc voici le lien obtenu
https://mon-partage.fr/f/juj3aisa/

Mais je me demande si c'est pas mon excel qui merdoie, le problème me parait si simple ...que je suis effrayé de ne pas avoir déjà trouvé la soluce.

Bien sur, j'avais aussi essayé la formule NB, utilisée qd il s'agit que de nombres et de dates
changer les formats n'a rien donné (HH MM SS)
Et mystère de l'apparition de cette valeur "3" qd j'utilise par ex la formule de jee pee supérieur au 01/01/2000

Vosu y verrez peut être plus clair avec le fichier test joignable par le lien du site de Vaucluse...
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
Je n'ose pas vous faire part de mes découvertes sur le sujet;
ds un autre post sur un autre forum se trouve un fichier qui présentait le même souci et qui a été traité par la fonction sommeprod pour des valeurs texte..
alors là on est très trè sloin de NBval ou nbsi
je vous le montre, là je suis largué:
https://mon-partage.fr/f/2cFPfNy8/
formule utilisée
=SOMMEPROD((ESTTEXTE(B43:J43)*1))
là j'aimerais bien qu'on m'explique comment en arriver là quand on veut dénombrer une bête somme de "valeurs de date" dans une bête colonne de dates.
Ca sent l'usine à gaz !
Ce d'autant que la fiche NB.SI et NB.VAL de crosoft lui même n'alrete en rien sir les impossibilités d'obtenir un nombre de valeurs avec leurs formules. Ou va t on !?
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355
Bonjour
je vais essayer d'être clair
votre Excel doit à priori fonctionner normalement, mais c'est l'origine de vos données qui doit être en cause
1°) pour utiliser NB.VAL sur les trois colonnes
  • en A pas de problème pour l'instant puisqu'il n'y a pas de vide
  • En B et C les données sont probablement des copier coller "spécial valeur" de champs contenant des formules, dont certaines devaient renvoyer des "" pour vide, ce qu'Excel ne considère pas comme vide par la suite
  • Il faudrait donc effacer au clavier toutes les cellules qui ne contiennent pas de date en B et C

2°)pour utiliser NB.SI
  • le problème des cellules vides est le, même et ne permet pas d'utiliser "<>"
  • les dates de la colonne C et de la colonne B sans doute, sont des textes (certaines avec le mis en anglais comme May)et ne peuvent pas être utilisées avec ">0"

pour numériser les dates une solution
  • entrer 1 dans une cellule hors champ
  • la copier
  • sélectionner B2:C3198
  • collage spécial "multiplication"

par contre, il reste dans cette plage quelques dates irréductibles à corriger au clavier
  • ces dates sont à entrer en format date sous: JJ:MM:AA

Je joins le fichier en retour, vous y verrez pour info les dates modifiables en affichage standard et celles qui restent à modifier.
Les résultats provisoires de de B et C sont en haut à droite
https://mon-partage.fr/f/7q4g670S/
crdlmnt



Messages postés
16171
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 juillet 2020
2 989
Bonjour

A vérifier

=SOMMEPROD((C2:C3128<>"")*1)




Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
Bonjour Michel et merci
après avoir investigué suite à la réponse de Vaucluse, je vois bien que la soluce va venir de par là.
avec votre calcul on trouve pratiquement le bon nombre ; j'explique
avec Vaucluse j'obtiens 616, avec vous 713
la différence vient de 97 valeurs de dates qui n'ont pas voulues être transformées en nombre par la formule de Vaucluse; pourquoi ?
https://mon-partage.fr/f/kcbcBSST/
A la base, tous étaient des dates copier-coller valeurs mais certaines n'ont pas voules passer en chiffre (j ereste sur le dénombrement de la colonne C uniquement)
en colone G, un copier coller valeurs de la colonen C (je ne m'intéresse plus à la B, similaire), sans changement de format et votre forumle semble fonctionner
Mais alors POURQUOI ?
quelle règle dois je appliquer lors de du formatge de ces dates (je préfèrerais garder les heures) ?
comment coder al création de cette date ds ce fichoer sourse: avec now() et un "format" de cellule derrière peut être ?

Vous me faites EnORMEMENT progresser tous les deux, car ces calculs de dates me ervent à comparer en temps réel les itels que j'ai importés et, dès que d'autres sont prêts (complets) mais pas importer vers leur destination, le faire automatiquement sur la condition date =""
Leur dénombrement, 713 ici, me permettant de décider si ça vaut le coup d'importer une nouvelle vague d'items et ne pas le faire pour qques articles seulement car le processus qui s'en suit est long.

et j'aimerais bien comprendre la théorie car les fiches de crosoft sont absolument fausses sur ces formules, elles ne parlent pas des dates, simplement.
Messages postés
35
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
2 juillet 2020
3
Bonjour
vraiment très intéressant, Vaucluse.

De prime abord simple, la question devient complexe. J'étais loin de soupçonner qu'une question aussi simple soit si sombre.

D'abord je vois que je vais devoir remonter à la génèse de mon document:

1- effectivement le modèle exemple reprend des copier coller valeurs d'ine colonne initialement remplie de valeurs issues de formules. Affichage format date. Un rechercheV avec si erreur, "" donc comme vous le supposez.
Si excel ne reconnait pas ses petits ça va être compliqué; restons près du besoin: compter le nombre d'articles qui n'ont pas été mis à jour, puisque pas de date de mise à jour remontée
Ceci dit, sur le fichier envoyé comme exemple, vous pourrez constater que si je "delete" le contenu de cellules vides, mes formules ne marchent pas mieux; avec NBVAL, tout se passe comme ci les cellules contenanient qqchose: le mystère reste entier.

2- cellule vide, pas de condition "<>" possible; là deja ça se corse. Au prime abord, j'avais tenté plutot la condition "<>""" qui me semblait ds la bonne logique d'Excel; donc là, je ne comprends pas.
Comme énoncé, les contenus des cellules colonesz B et C et sont bien pourtant des "dates", vous avez le fichier pour le voir.
=> remarque étrange que vous pouvez vérifier svp, car j'ai des doutes maintenant sur mon excel (2016), CHANGER LE FORMAT DES CELLULES de date ds un autre format de date, par exemple COURTES, ne change pas l'affichage !
=> intéressant; quelle est la nature de mes dates, issues comme vous le dites d'un copier coller valeur d'u résultat d'une formule. Ou est mon erreur ?
=> du coup je passe toutes les dates au format heure, conforme à leur contenu: RIEN N'Y FAIT
=> collage avec multiplication: du mieux:
-toutes mes dates bien qu'au format d'affichage "date" passe en "standard"
-deux formules différentes donnent deux résultats différents, plus conformes:
> =NB.SI(C2:C3198;">=01/01/2000") donne 605
> =NB(C2:C3198) donne 616
La différence vient du fait que cerraines dates se sont préalablemet transformées en "" (rien donc à l'affichage, ou en "0"
La différence entre 605 et 616 provient exactement des "0" qui apparaissent ou pas lors de l'utilisation de la multiplication
=> pourquoi ? je n'en sais rien
=> pourquoi est ce si complexe ? comment aurais je du rentrer mes dates pour éviter ce fatras sur lequel il faut bien reconnaitre que je n'ai rien compris à la théorie; ça marche mais pourquoi est ce aussi complex et n'y a t il pas plus simple ???

Le résultat ds le fichier source original joint
https://mon-partage.fr/f/H3GfCcBr/

question subsidiaire: ces dates pouvant être générées par un code, quel format dois adopter lors de la commande qui créé la date, étant entendu que ce code renseigne une colonne de mise à jour des dates, formatée actuellement en date, longue pour laquelle je ne vois d'ailleurs pas de différence (voir la copie d'écran) ?

https://prnt.sc/t3e2dq

=> quel format de cellule dois je définir: heure ? nombre ? date avec heure ?
=> un copier coller valeur si je vais les rechercher ds un fichier ou quel format de code dois je utiliser pour avoir le bon format qui va permettre d'utiliser les formules que vous m'avez données ?
Aujourd'hui ma ligne de code est :
ws1.Cells(i, 126) = Now() 'renseigne la date du remplissage du fichier source (wb1.ws1)au moment de la création de l'import de l'article considéré.

Je ne pouvais pas penser qua ça soit aussi compliqué.
Et je n'ai toujours pas compris pourquoi dénombrer était aussi complexe et comment je peux simplifier; je n'ai aucun problème quand il s'agit de dénombrer desvaleurs autres que date, texte, nombres, etc.