associer le nombre 1 à une date

armalama

XLDnaute Nouveau
Bonjour à tous,

Est-il possible d'associer le nombre 1 à une date ?
Exple :
dans la cellule A1 : 01/01/2009
dans la cellule B1 : 10/01/2009
dans la cellule C1 : 15/01/2009
dans la cellule D1 : 25/01/2009

dans la cellule E1 je souhaiterai avoir le résultat suivant : 4

Merci d'avance
 

abcd

XLDnaute Barbatruc
Re : associer le nombre 1 à une date

Bonjour,

Si par la question il faut copmprendre : compter le nombre de dates dont le mois est égal à 1 (janvier) :

=SOMME((MOIS(A1:A4)=1)*1)
formule matricielle à valider par Ctrl+Maj+Entrée

Cette formule n'est pas valable s'il y a des cellules vides dans la plage de recherche.

abcd

Edition :
A moins qu'il ne faille interprêter la question comme : compter le nombres de dates dans la plage de recherche.
Une précision s'avère indispensable.
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : associer le nombre 1 à une date

Bonjour,

Pour apporter une précision à la formule d'abcd, les cellules vides (en matière de date) sont assimilées au 0 janvier 1900, date qui n'existe pas, mais qui retourne janvier avec la fonction MOIS.

On peut traiter ainsi :

Code:
=SOMMEPROD((MOIS(A1:A4)=1)*(A1:A4<>0))

qui permet de gérer les cellules vides (ou égales à zéro)

@+
 

Tibo

XLDnaute Barbatruc
Re : associer le nombre 1 à une date

re,

Il est assez difficile de déterminer si une cellule contient une date ou un nombre.

Car, pour Excel, une date correspond à un nombre auquel est appliqué un format particulier. L'origine est au 1er janvier 1900 qui est équivalent au jour 1. Aujourd'hui, nous en sommes au 39787ème jour.

En rusant, on peut, via les macros XL4, analyser le format des cellules pour voir si le format appliqué correspond à un format Date.

Sinon, par macro, je crois que c'est également possible, mais là, je ne sais pas faire.

@+
 

Pierrot93

XLDnaute Barbatruc
Re : associer le nombre 1 à une date

bonjour à tous

Comme suggérer par Tibo:), que je salue au passage, ci dessous une fonction personnalisé :

Code:
Option Explicit
Function NbdeDates(Plage As Range)
Dim c As Range, i As Integer
Application.Volatile
For Each c In Plage
    If IsDate(c.Value) Then i = i + 1
Next c
NbdeDates = i
End Function

bon après midi
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 905
Membres
103 982
dernier inscrit
krakencolas