2 votes

Y a-t-il une formule pour la date à venir en utilisant la formule dans Google Sheet basée sur une condition?

J'ai une feuille de calcul Google où j'ai besoin d'obtenir la prochaine date à venir en fonction de la date de début définie dans la colonne A

Toute aide est grandement appréciée? Je suis incapable de montrer les efforts car je suis complètement nouveau dans ce type de récurrence en utilisant Google Sheets

https://docs.google.com/spreadsheets/d/1g_UNg4MjDy3gFufpjZtMRkbBz80K3scQdZOaiAnZi7I/edit#gid=0

entrer la description de l'image ici

2voto

Onkeltem Points 123

Ce comportement (la prochaine date à partir d'aujourd'hui y compris aujourd'hui) pourrait être implémenté manuellement par cette formule :

={
  "Prochaine date à partir d'aujourd'hui";
  ARRAYFORMULA(
    IFS(
      A2:A >= AUJOURDHUI(),
        A2:A,
      B2:B = "Quotidien",
        AUJOURDHUI() + MOD(AUJOURDHUI() - A2:A, C2:C),
      B2:B = "Hebdomadaire",
        AUJOURDHUI() + MOD(AUJOURDHUI() - A2:A, 7 * C2:C),
      B2:B = "Mensuel",
        EDATE(A2:A, ARRONDIRENT((12 * (ANNEE(AUJOURDHUI()) - ANNEE(A2:A)) + (MOIS(AUJOURDHUI()) - MOIS(A2:A)) - SI(JOUR(AUJOURDHUI()) < JOUR(A2:A), 1, 0)) / C2:C, 0) * C2:C),
      Vrai,
        ""
    )
  )
}

Pour des options supplémentaires (comme "tous les 2ème lundi du mois" et autres), des options supplémentaires doivent être implémentées dans cette partie IFS.

description de l'image

Si vous êtes intéressé par un cas trivial où la prochaine date à partir de la date de début (colonne F:F sur la capture d'écran) est nécessaire, alors la formule serait beaucoup plus simple :

={
  "Prochaine date";
  ARRAYFORMULA(
    IFS(
      B2:B = "Quotidien",
        A2:A + C2:C,
      B2:B = "Hebdomadaire",
        A2:A + 7 * C2:C,
      B2:B = "Mensuel",
        EDATE(A2:A, C2:C),
      Vrai,
        ""
    )
  )
}

Encore une fois, pour des options supplémentaires, vous devrez ajouter la partie correspondante à l' IFS.

2voto

Iamblichus Points 11676

Vous pourriez utiliser IFS pour vérifier la Fréquence, et:

  • Si Quotidien, ajoutez la valeur de Nombre à la date de début.
  • Si Hebdomadaire, ajoutez la valeur de Nombre multipliée par 7.
  • Si Mensuel, puisque tous les mois n'ont pas la même durée, récupérez les index ANNEE, MOIS et JOUR, ajoutez Nombre à l'index du MOIS, et définissez une nouvelle DATE, MODIFICATION: ou comme suggéré par kishkin, utilisez EDATE.

Cela pourrait ressembler à ceci :

=ARRAYFORMULA(IFNA(IFS(
    B2:B = "Quotidien", A2:A + C2:C,
    B2:B = "Hebdomadaire", A2:A + 7 * C2:C,
    B2:B = "Mensuel", EDATE(A2:A,C2:C)
)))

description de l'image

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X