Touver un mois et une année dans une plage de périodes

Fermé
benjea06 Messages postés 84 Date d'inscription vendredi 27 décembre 2013 Statut Membre Dernière intervention 5 octobre 2022 - Modifié le 28 sept. 2022 à 10:16
DjiDji59430 Messages postés 4037 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 26 avril 2024 - 29 sept. 2022 à 19:20

Bonjour,

Je cherche à tester une zone de date et j'ai besoin d'aide.

J'ai une plage de date comme celle-ci

          1                  2           3      .....................................     7

A | 01/01/2019 | au | 30/01/2019                                  1000e

B | 01/01/2020 | au | 31/08/2020                                  1500e

C | 01/08/2020 | au | 31/12/2020                                    800e

D |     Résultat???

J'aimerais qu'une cellule D1 m'affiche la valeur en colonne 7 s'il trouve le mois de janvier 2020 présent dans une des périodes.

Ici, il doit balayer la plage (A1:C3) et trouver que la ligne B comprend bien le mois de janvier 2020 et me renvoyer 1500e en D1.

Quelqu'un saurait il comment faire?

Merci pour votre aide!

;)

[EDIT]

Le problème se complexifie du fait que si une période commence par un jour autre que le premier du mois, je dois calculer le nombre de jour de ce mois...

Exemple sur une période de type 29/03/2020 au 30/03/2020, non seulement il doit trouver, par exemple, que le mois de mars 2020 est présent sur cette période mais extraire le nombre de jour sur ce mois. Ici 1 jour....


Linux / Firefox 84.0

6 réponses

benjea06 Messages postés 84 Date d'inscription vendredi 27 décembre 2013 Statut Membre Dernière intervention 5 octobre 2022
Modifié le 28 sept. 2022 à 10:46

Mes débuts donnent ça:

=SI(ET(X7>=B8;X7<=D8);H8;SI(ET(V7>=B9;V7<=D9);H9;SI(ET(V7>=B10;V7<=D10);H10;"absent")))

(Ici, avec les références cellules de ma feuilles...)

C'est un peu lourd car je dois rajouter autant de condition dans la ligne qu'il y a aura de périodes (elles peuvent aller à 10...)

Un système par plage serait plus astucieux mais je ne connais pas.

Et puis je ne résous pas encore le problème du mois qui commence par autre chose que 1....

En fait pour être précis dans ma description, la cellule D (8.9.10 ou autres) contient une somme en euros équivalente à 30 jours payés...

Si la période commence par 15, j'ai donc la valeur de D à diviser par 30 et à multiplier par 16 pour connaître la somme sur la période du 15 au 30 du mois.

0
yclik Messages postés 3595 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 26 avril 2024 1 481
28 sept. 2022 à 11:45

Bonjour

une piste pour la 1ere question si les cellules sont au format date

=SOMMEPROD((MOIS(A1:A3)=1)*(ANNEE(A1:A3)=2020)*(G1:G3))
0
benjea06 Messages postés 84 Date d'inscription vendredi 27 décembre 2013 Statut Membre Dernière intervention 5 octobre 2022
28 sept. 2022 à 13:14

Bonjour Yclik,

Merci pour ta réponse.

Elle me donne une piste mais ne résout pas vraiment la première question car le test à effectuer est le suivant:

Période 1: 30/04/19 au 31/11/19
Période 2: 01/12/19 au 30/04/20

Sur la période 2 qui contient le mois de janvier 2020 (par exemple), il doit pouvoir le trouver en vérifiant si il est présent dans la période couverte...
La fonction doit tester entre les 2 dates donc.

Je vais creuser ta méthode de base, si tu sais comment faire, je suis preneur... ;)

0
DjiDji59430 Messages postés 4037 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 26 avril 2024 646
28 sept. 2022 à 14:41

Bonjour à tous,

Une autre approche :

https://www.cjoint.com/c/LICmOV3CWcY


Crdlmt

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benjea06 Messages postés 84 Date d'inscription vendredi 27 décembre 2013 Statut Membre Dernière intervention 5 octobre 2022
Modifié le 28 sept. 2022 à 19:29

Bonjour Djidji,

Merci pour le fichier mais c'est de l'Excel et j'ai libreoffice.

La commande  fonctionne pas.

Ça fonctionne sur quel principe ?

=ARRAY_CONSTRAIN(ARRAYFORMULA(SOMMEPROD(--((MOIS(LIGNE(INDIRECT($E5&":"&$F5)))=MOIS($L$2&1))*(SI((ANNEE(LIGNE(INDIRECT($E5&":"&$F5)))=$K$2)>0,(ANNEE(LIGNE(INDIRECT($E5&":"&$F5)))=$K$2)))))), 1, 1)
0
DjiDji59430 Messages postés 4037 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 26 avril 2024 646
Modifié le 28 sept. 2022 à 23:20
Re,
LIGNE(INDIRECT($E5&":"&$F5))==>ligne(43466:434964)==>{43466;43467;........;434964}

mois({43466;43467;........;434964})==>{1;1;1;ou 2 ou 3 suivant le mois.

donc on selectionne les plages qui contiennent le mois de janvier

puis la meme chose pour l'année K2

finalement on a le nb de jours de janvier 2020

0
benjea06 Messages postés 84 Date d'inscription vendredi 27 décembre 2013 Statut Membre Dernière intervention 5 octobre 2022
29 sept. 2022 à 18:08

Djidji,

je ne parviens pas à faire fonctionner ces fonctions sous libre office... :/

Normal?

0
DjiDji59430 Messages postés 4037 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 26 avril 2024 646
29 sept. 2022 à 19:20

Je ne sais pas .... Sorti d'excel ....

Decompose la formule en morceau

MOIS(LIGNE(INDIRECT($E5&":"&$F5)))

ça te donne le chiffre du mois

MOIS($L$2&1) la aussi èa te donne le chiffre du mois de ref

C'est peut etre la que ça s'embrouille

0