Automatiser calculs avec des dates

Bonjour,

Dans l’exemple ci-dessous :

Janvier : =SOMMEPROD(($AA$1:$AA$25002>="01/01/2019"*1)*($AA$1:$AA$25002<"01/02/2019"*1))

Février :
=SOMMEPROD(($AA$1:$AA$25002>="01/02/2019"*1)*($AA$1:$AA$25002<"01/03/2019"*1))

Mars :
=SOMMEPROD(($AA$1:$AA$25002>="01/03/2019"*1)*($AA$1:$AA$25002<"01/04/2019"*1))

Avril :
=SOMMEPROD(($AA$1:$AA$25002>="01/04/2019"*1)*($AA$1:$AA$25002<"01/05/2019"*1))

Etc…

Existe-t-il une formule, ou une autre solution pour éviter d’écrire à chaque fois « >dd/mm/aa » et « <dd/mm/aa » ?

En effet, ce tableau ne fonctionnerait que pour 2019. En 2020, il faudrait que je vienne changer manuellement chaque année de chaque formule…

Remarques : les données « dates » du tableau à partir duquel la formule s’applique sont exprimées de la manière suivante « 01/01/2019 ».

Par avance merci,

Cordialement,

7 réponses

  1. Contributeur
    Bonjour
    pour calculer par mois avec SOMMEPROD et remplacer vos dates:
    Janvier :
    =SOMMEPROD((MOIS($AA$1:$AA$25002)=1)*1)
    avec 1,ou 2 ou selon le mois
    ou alors si vous avez un tableau à tirer:
    =SOMMEPROD((MOIS($AA$1:$AA$25002)=LIGNE($A1))*1)
    qui va s'ajuster sur les 12 lignes en tirant vers le bas
    crdlmnt

    1
    1. Contributeur
      Bonjour Badarledur, Bonjour Vaucluse

      Une idée, je ne sais pas si j'ai bien compris votre problème ?

      Ma solution

      =SOMMEPROD((MOIS($A$1:$A$25)=$E$1)*(ANNEE($A$1:$A$25)=$F$1)*($B$1:$B$25))

      E1 = 1 le mois
      F1 = 2019 l'année

      Dans votre formule vous faites la somme de quoi?
      Dans mon exemple la somme de la colonne B
      1
      1. Bonjour,

        merci pour ces solutions:

        - la première : erreur de valeur

        - la deuxième : "nous avons rencontré une erreur dans cette formule. Etes vous en train de taper une formule? Lorsque le premier caractère est un signe (=) ou ..........

        Une idée du pourquoi du comment?
        0
        1. Contributeur
          attention si vous avez copié/collé depuis le message, il doit y avoir un blanc parasite en fin de formule. Voyez ici
          https://mon-partage.fr/f/hSoCntxs/
          par ailleurs si la formule renvoie #VALEUR c'est que vous avez des cellules
          textes dans le champ
          ça expliquerait le besoin de *1 dans vis premières formules. Dans ce cas essayez
          soit de copier une cellule vide, de sélectionner le champ et collage spécial "ajouter"
          ou entrez 1 dans une cellule copier / collage spécial "multiplication"
          bien entendu cette formule ne fait que compter le nombre de cellules avec la date dans le mois choisi
          crdlmnt
          0
      2. Merci pour vos retours. Je ne parviens pas à adapter vos solutions à mon problème.

        Je n'ai pas été assez précis sur ma requête.

        Avec ce fichier, je pourrais être plus clair
        https://www.cjoint.com/c/IFjofcy62x2

        Comment puis-je intégrer M11, de la même manière que M7 dans mes formules situées en T8, T9,T10,T11?
        0
        1. Contributeur
          Votre fichier en retour , en supposant que l'astérisque dans la validation "période" doive englober tous les mois de la liste
          https://mon-partage.fr/f/wCtrLIfH/
          pour adapter, ajuster bien les champs au nombre de lignes utiles , sinon la formule risque d'être assez lourde
          crdlmnt

          0
          1. Là, c'es trop technique pour moi ^^

            Je ne comprends pas ta formule.

            Mais en tout cas, elle fonctionne. Presque...

            Quand les deux critères sont sur "*", effectivement pour "tout", le calcul ne se fait pas.

            Merci !
            0
            1. ou même juste quand "sexe" est sur tout
              0
            2. Contributeur
              alors mieux vaut pour traiter la combinaison des "tout" utiliser un tableau croisé dynamique avec ses filtres en rajoutant pour la simplicité des sélections une colonne qui donne le mois selon la date (en E dans le modèle joint)

              sinon les formules vont être à s'arracher les cheveux, sauf si besoin, à rajouter une colonne qui code le choix Mais le TCD est sans doute une bonne option
              revenez si besoin
              https://mon-partage.fr/f/Vw6o9w4d/
              crdlmnt
              0
            3. OK...Dommage. Je pensais qu'il existerait une solution type :/

              Je n'aime pas trop les tcd. Ils ne s'actualisent pas tout seuls.

              Il faut à chaque fois, venir activer manuellement, des "nouveaux filtres"...

              En tout cas, merci à tous pour votre aide!
              0
            4. Contributeur
              Il y a toujours une solution par formule, mais la complexité des combinaisons d'options TOUS en variante avec les autres sélections entraîne des complications trop lourdes pour un bon fonctionnement.
              Alors du VBA peut être, mais ça n'est pas dans mon domaine
              Quant au TCD vous pouvez avec l'onglet "OUTIL DE TCD" qui s'affiche quand vous le sélectionnez, et via la petite flèche en dessous de l'icone "Actualiser" aller dans "propriétés de connexions" et programmer une actualisation automatique à l'ouverture du fichier, et aussi à une cadence pouvant descendre à la minute
              crdlmnt
              0
            5. Je vais regarder ce que vous me proposez pour le tcd.

              Merci
              0
          2. Bonjour,

            Par formule (pas trop longue) en T8 et à tirer vers le bas
            =SI($M$11="*";NB.SI.ENS($G$7:$G45;$M$7;$I$7:$I45;$S8);SI($M$7="*";SOMMEPROD((TEXTE($F$7:$F45;"mmmm")=$M$11)*($I$7:$I45=$S8));SOMMEPROD((TEXTE($F$7:$F45;"mmmm")=$M$11)*($G$7:$G45=$M$7)*($I$7:$I45=$S8))))

            A tester

            Cdlt
            0