Formule mois

Bonjour,

Au sein de mon tableau, j'ai une colonne avec une liste de dates sous ce format là :

01/05/2016

05/08/2016

01/02/2016

05/05/2016

Je voudrais une formule qui me permette de faire la somme du nombre de mois identique.

Merci d'avance pour votre aide.

Bonne journée.

Bonjour le forum,

C1 :

=SOMMEPROD((MOIS($A$1:$A$1000)=LIGNE())*($A$1:$A$1000<>""))
nbre mois

Bonjour vb60400

Tu devrais posé ta question dans le Forum dédié à Excel

Cependant voici une solution VBA

Function CompterMois(zone As Range, quelMois As Integer)
Dim cel
Dim cptMois As Integer
    For Each cel In zone
        If Month(cel) = quelMois Then
            cptMois = cptMois + 1
        End If
    Next
    CompterMois = cptMois
End Function

zone c'est la "plage de cellule" que tu veux tester,

quelMois c'est le mois recherché

Dans Excel tu écris par exemple pour rechercher les mois de janvier (comme une formule classique)

 = CompterMois(laZoneDeRecherche;1)

Attention actuellement le code ne teste que le mois et pas le mois d'une année !!!!

C'est 01/01/2016 est compté mais 01/01/2015 aussi (par exemple)

Si tu veux prendre en compte l'année il faut modifier ainsi :

Function CompterMois(zone As Range, quelMois As Integer, quelAn As Integer)
Dim cel
Dim cptMois As Integer
    For Each cel In zone
        If (Month(cel) = quelMois) And (Year(cel) = quelAn) Then
            cptMois = cptMois + 1
        End If
    Next
    CompterMois = cptMois
End Function

où (évidement) quelAn est l'année à prendre en compte

Dans Excel tu écris par exemple pour rechercher les mois de janvier de 2016 (comme une formule classique)

 = CompterMois(laZoneDeRecherche;1;2016)

Ou encore mieux :

Function CompterMois(zone As Range, quelMois As Integer, Optional quelAn As Integer)
Dim cel
Dim cptMois As Integer
Dim an

    If quelAn = 0 Then
        an = Year(Date)
    Else
        an = quelAn
    End If

    For Each cel In zone
        If (Month(cel) = quelMois) And (Year(cel) = an) Then
            cptMois = cptMois + 1
        End If
    Next
    CompterMois = cptMois
End Function

Où l'année est optionnelle et devient l'année en cours si omise !

PS/

Tu également ajouter

    Application.Volatile

au début de la fonction (juste après le(s) dim pour que les calculs soient actualisés à chaque changement dans tes onglets

Ou pour janvier :

=NB.SI.ENS(A1:A1000;">=01/01/2016";A1:A1000;"<=31/01/2016")

Bonjour, Salut à tous,

Une formule à essayer :

=SOMMEPROD(--(FREQUENCE(MOIS(PLAGE_DATES);MOIS(PLAGE_DATES))>1))

Bonjour Raja,

Merci pour ta réponse (merci aux autres pour vos réponses ...)

Raja, concernant ta formule, celle-ci ne semble pas fonctionner.

J'essaye de trouver pourquoi, mais avec du mal... :/

Cordialement,

Re,

Par rapport à ton exemple, quel est le résultat recherché ?

Faire la somme du nombre de mois identiques :

Proposition :

B1 = mois(A1)

C1 : =NB.SI($B$1:B1;B1)

D1 : =SI(C1<C2;"";SI(C1>1;C1;""))

somme mois identiques

Bonjour

Pour info, version avec un TCD en pièce jointe, mais c'est un peu contraignant ici car il faut ajouter une colonne pour compter les mois se mettre sur le tableau et actualiser pour qu'il se mette à jour.

Comme vous n'aviez pas précisé, le mois uniquement est compté sur cette version, sans distinction de l'année, mais il serait peut être plus simple de séparer par mois ET par année.

cdt,

1422.xlsx (14.09 Ko)

bonjour

en admettant que tes mois sont en B2:B6

cette plage a eté nommée " plage "

=SI(SOMMEPROD(--(MOIS(B$2:B3)=MOIS(B3)))<MAX(SOMMEPROD(--(MOIS(plage)=MOIS(B3))));"";MAX(SOMMEPROD(--(MOIS(plage)=MOIS(B3)))))

ainsi le total ne se repete pas a chaque fois

cordialement

Bonsoir,

Une proposition TCD sans ajout de colonne.

Le regroupement est mensuel, mais on peut ajouter l'année.

Cdlt.

622-bis.xlsx (18.66 Ko)
Rechercher des sujets similaires à "formule mois"