Microsoft 365 Condition entre 2 date

Marylgb

XLDnaute Junior
Bonjour,

J aurais besoin de faire une formule qui comptabilise "1" à condition que le mois soit compris entre la date de début et la date de fin.
Colonne A | Colonne B | Colonne C| Colonne D ect..... Colonne
Date de début| Date de fin | Avril 2019| Mai 2019| .............|juin 2020
05/05/2019 | 12/01/2020 | 0 | 1
01/06/2020 | 30/11/2020 | | | ..............| 1

Merci d avance pour votre aide
Bonne soirée
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Une autre méthode avec une fonction personnalisée dont le code est dans module1.
Le cinquième paramètre est ce qu'on doit afficher si le résultat est 0. Si le 5ème paramètre est absent, on n'affiche rien (quand le résultat est 0).

VB:
Function NbrJourPeriode1dans2(ByVal D1 As Date, ByVal F1 As Date, ByVal D2 As Date, ByVal F2 As Date, Optional SiZero)
' nombre de jour de la période n°1 [D1, F1] dans la période n°2 [D2, F2]
' SiZero est ce qu'on affiche si le résultat est la valeur 0
' si Sizero est manquant alors on affiche la chaine vide quand le résultat est 0
Dim n&, d As Date
   For d = D1 To F1
      If (d >= D2) Then If (d <= F2) Then n = n + 1
   Next
   NbrJourPeriode1dans2 = n
   If (n = 0) Then NbrJourPeriode1dans2 = IIf(IsMissing(SiZero), "", SiZero)
End Function
 

Pièces jointes

  • Marylgb- Intervalle dates- v2.xlsm
    26.7 KB · Affichages: 9

Jean-Eric

XLDnaute Occasionnel
Bonjour,
Des explications pour la mise en oeuvre avec Power Query.
Nécessite un apprentissage, donc un investissement personnel, comme pour appréhender Excel.
Lien à consulter :
Aide Microsoft - Power Query
Cdlt.

1 - Mettre les données sous forme de tableau
Ruban, Accueil, Mettre sous forme de tableau
Renommer le tableau T_Dates
2 - Ruban, Données, A partir d'un tableau ou une plage
L'éditeur Power Query est ouvert avec T_Dates dans la fenêtre principale
3 - Ruban, Accueil, Transformer, Type de données : sélectionner Date dans la liste déroulante
Sélectionner la colonne Date début : trier par ordre ascendant (comme sous Excel)
Répéter l'opération pour la colonne Date fin
4 - Ruban, Ajouter une colonne, Colonne personnalisée
Saisir (ou copier) la formule (attention ! PQ est sensible à la casse) :
=List.Dates([Date début],Duration.Days([Date fin]-[Date début])+1,Duration.From(1))
Valider
5 - Sélectionner la colonne Personnalisé et Développer sur de nouvelles lignes
6 - Ruban, Ajouter une colonne, Colonne personnalisée
Saisir (ou copier) la formule (attention ! PQ est sensible à la casse) :
=Date.ToText([Personnalisé],"yyyy-MM")
Valider
7 - Sélectionner le colonne Personnalisé. Clic-droit et supprimer
8 - Sélectionner dans l'ordre Date début, Date fin puis Personnalisé.1 (avec Ctrl)
Ruban, Transformer, Regrouper par :
Nouveau nom colonne - Nombre
Opération - Compter les lignes
Valider
9 - Sélectionner la colonne Personnalisé.1
Ruban, Transformer, N'importe quelle colonne, Pivoter la colonne
Colonne de valeures : sélectionner Nombre
Valider
10 - Dernière étape : restitution tableau final dans le feuille de calcul
Ruban, Accueil, Fermer, Fermer et charger, Fermer et charger dans...
Sélectionner tableau et la destination (feuille active ou nouvelle feuille)
 

Pièces jointes

  • demande 1.xlsx
    23.7 KB · Affichages: 6

Marylgb

XLDnaute Junior
Re,

Une autre méthode avec une fonction personnalisée dont le code est dans module1.
Le cinquième paramètre est ce qu'on doit afficher si le résultat est 0. Si le 5ème paramètre est absent, on n'affiche rien (quand le résultat est 0).

VB:
Function NbrJourPeriode1dans2(ByVal D1 As Date, ByVal F1 As Date, ByVal D2 As Date, ByVal F2 As Date, Optional SiZero)
' nombre de jour de la période n°1 [D1, F1] dans la période n°2 [D2, F2]
' SiZero est ce qu'on affiche si le résultat est la valeur 0
' si Sizero est manquant alors on affiche la chaine vide quand le résultat est 0
Dim n&, d As Date
   For d = D1 To F1
      If (d >= D2) Then If (d <= F2) Then n = n + 1
   Next
   NbrJourPeriode1dans2 = n
   If (n = 0) Then NbrJourPeriode1dans2 = IIf(IsMissing(SiZero), "", SiZero)
End Function
 

Discussions similaires

Réponses
11
Affichages
473

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510