Somme d'une colonne selon période
Résolu/Fermé
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
-
Modifié par pajude le 11/07/2014 à 16:00
Le Pingou Messages postés 12230 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 15 janvier 2025 - 18 juil. 2014 à 09:49
Le Pingou Messages postés 12230 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 15 janvier 2025 - 18 juil. 2014 à 09:49
A voir également:
- Somme d'une colonne selon période
- Formule somme excel colonne - Guide
- Déplacer une colonne excel - Guide
- Trier colonne excel - Guide
- Somme si couleur - Guide
- Colonne word - Guide
55 réponses
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
12 juil. 2014 à 21:48
12 juil. 2014 à 21:48
Merci encore, c'est super de votre part.
Pourriez vous dans la macro mettre quelques explications, car je modifierai sûrement le tableau et je suis loin de maitriser VBA.
Si Theo arrive à un résultat avec des fonctions ce serait également parfait.
Bonne soirée
Pajude
Pourriez vous dans la macro mettre quelques explications, car je modifierai sûrement le tableau et je suis loin de maitriser VBA.
Si Theo arrive à un résultat avec des fonctions ce serait également parfait.
Bonne soirée
Pajude
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
12 juil. 2014 à 22:16
12 juil. 2014 à 22:16
Bonjour,
Je suis tombé sur une anomalie sur les dates, par exemple la ligne 11 vous avez date de fin 30.04.2003 et sur la ligne 12 date chgt prix 05.05.2003 ce qui représente un trou de 6 jours sans tarif... est-ce bien correct... ?
Il y en a d'autre ........ et cela influence le code qui donne un résultat erroné... !
Merci de votre réponse...
Je suis tombé sur une anomalie sur les dates, par exemple la ligne 11 vous avez date de fin 30.04.2003 et sur la ligne 12 date chgt prix 05.05.2003 ce qui représente un trou de 6 jours sans tarif... est-ce bien correct... ?
Il y en a d'autre ........ et cela influence le code qui donne un résultat erroné... !
Merci de votre réponse...
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
12 juil. 2014 à 22:54
12 juil. 2014 à 22:54
Non ce n'est pas correct, car Il doit y avoir une anomalie car la colonne D affiche le dernier jour précédent de la colonne C. Donc si en ligne 12 il y a 05/05/2003 en ligne 11 colonne D il doit y avoir 04/05/2003. Erreur probable des formules en colonne D.
Cdt,
Cdt,
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
12 juil. 2014 à 23:11
12 juil. 2014 à 23:11
Bonjour,
En attendant votre réponse.
J'ai modifié la procédure et aussi les dates de fin selon mon idée en espérant que c'est conforme pour vous.
Le fichier : https://www.cjoint.com/?3GmxklaxDuc
En attendant votre réponse.
J'ai modifié la procédure et aussi les dates de fin selon mon idée en espérant que c'est conforme pour vous.
Le fichier : https://www.cjoint.com/?3GmxklaxDuc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
12 juil. 2014 à 23:42
12 juil. 2014 à 23:42
Bonsoir,
Excellent, le résultat est correct, je ne pensais pas que date - 1 fonctionnait, surtout quand on fait par ex 01/03/2014 - 1 = 28/02/2014.
Pouvez vous m'expliquer les lignes de la macro (quand vous aurez un moment), je ne maîtrise pas vraiment VBA.
Attendons maintenant la solution de Theo avec des fonctions.
Merci beaucoup
Cdt,
Excellent, le résultat est correct, je ne pensais pas que date - 1 fonctionnait, surtout quand on fait par ex 01/03/2014 - 1 = 28/02/2014.
Pouvez vous m'expliquer les lignes de la macro (quand vous aurez un moment), je ne maîtrise pas vraiment VBA.
Attendons maintenant la solution de Theo avec des fonctions.
Merci beaucoup
Cdt,
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
13 juil. 2014 à 11:27
13 juil. 2014 à 11:27
Merci, les explications macro d'ici à demain.
Bon dimanche.
Salutations.
Le Pingou
Bon dimanche.
Salutations.
Le Pingou
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
13 juil. 2014 à 18:17
13 juil. 2014 à 18:17
Bonjour,
La procédure est commenté voir sous MSO VB ... touche : [Ctrl + F11).
En plus j'ai mis une petite note concernant votre formule pour les dates [=SI(ESTVIDE($N7);"";DATE(AN.....] sur la feuille [Copie arch].
Le fichier : https://www.cjoint.com/?3GnsqIrcJU8
La procédure est commenté voir sous MSO VB ... touche : [Ctrl + F11).
En plus j'ai mis une petite note concernant votre formule pour les dates [=SI(ESTVIDE($N7);"";DATE(AN.....] sur la feuille [Copie arch].
Le fichier : https://www.cjoint.com/?3GnsqIrcJU8
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
14 juil. 2014 à 10:49
14 juil. 2014 à 10:49
Bonjour,
Merci pour les infos, en revanche je vois que vous avez remplacé dat par val dans la macro.
Est ce que c'est pour cela que le montant est arrondi à zéro. Ex du 01/05/99 au 30/04/00, le montant est de 26,00 au lieu de 25,87 qui me faudrait.
Merci
pajude
Merci pour les infos, en revanche je vois que vous avez remplacé dat par val dans la macro.
Est ce que c'est pour cela que le montant est arrondi à zéro. Ex du 01/05/99 au 30/04/00, le montant est de 26,00 au lieu de 25,87 qui me faudrait.
Merci
pajude
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
14 juil. 2014 à 10:57
14 juil. 2014 à 10:57
Juste une info complémentaire, si je déplace les données à saisir (I2:J5) sur une autre feuille, qu'est ce qu'il faut modifier dans la macro.
Merci
Merci
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
14 juil. 2014 à 16:15
14 juil. 2014 à 16:15
Bonjour,
Concerne : avez remplacé dat par val dans la macro
Eh oui, par principe : la variable fait référence à une valeur donc [val] et cela n'a pas d'influence sur la procédure.
Suite : Ex du 01/05/99 au 30/04/00, le montant est de 26,00 au lieu de 25,87 qui me faudrait.
J'ai déclaré les variables utilisées dans la procédure et une petite erreur pour [resu]
Merci de remplacer dans la procédure :
Et enfin : si je déplace les données à saisir (I2:J5) sur une autre feuille
Oui car elle se réfère à la feuille active par défaut.
Solution vous nommez la feuille qui contient les données ou nommer la plage des données ou encore mieux mettre le nom de la feuille dans une cellule sur l'autre feuille .
Qu'elle est votre choix ... ?
Concerne : avez remplacé dat par val dans la macro
Eh oui, par principe : la variable fait référence à une valeur donc [val] et cela n'a pas d'influence sur la procédure.
Suite : Ex du 01/05/99 au 30/04/00, le montant est de 26,00 au lieu de 25,87 qui me faudrait.
J'ai déclaré les variables utilisées dans la procédure et une petite erreur pour [resu]
Merci de remplacer dans la procédure :
Dim resu As LongPar :
Dim resu As Double
Et enfin : si je déplace les données à saisir (I2:J5) sur une autre feuille
Oui car elle se réfère à la feuille active par défaut.
Solution vous nommez la feuille qui contient les données ou nommer la plage des données ou encore mieux mettre le nom de la feuille dans une cellule sur l'autre feuille .
Qu'elle est votre choix ... ?
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
14 juil. 2014 à 16:29
14 juil. 2014 à 16:29
Merci encore de votre disponibilité (c'est énorme ce que vous faîtes !).
j'ai remplacé comme indiqué et ça fonctionne.
Pour le déplacement, je préfère nommer la feuille (d'ailleurs que je protègerai) et avoir le résultat sur une autre feuille.
Les données seront sur la feuille nommée "Tarif" et le calcul sur la feuille nommée "Facture"
J'aimerai aussi(si possible) avoir la solution que vous avez souligné.
Merci
j'ai remplacé comme indiqué et ça fonctionne.
Pour le déplacement, je préfère nommer la feuille (d'ailleurs que je protègerai) et avoir le résultat sur une autre feuille.
Les données seront sur la feuille nommée "Tarif" et le calcul sur la feuille nommée "Facture"
J'aimerai aussi(si possible) avoir la solution que vous avez souligné.
Merci
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
14 juil. 2014 à 16:34
14 juil. 2014 à 16:34
Bonjour,
Ma proposition (voir Feuil1 et Feuil2) avec le nom de feuille dans une cellule : https://www.cjoint.com/?3GoqGV6W2Hj
Ma proposition (voir Feuil1 et Feuil2) avec le nom de feuille dans une cellule : https://www.cjoint.com/?3GoqGV6W2Hj
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
14 juil. 2014 à 17:04
14 juil. 2014 à 17:04
Désolé,
ça ne fonctionne pas sur la feuil2, montant 0,00
Merci
ça ne fonctionne pas sur la feuil2, montant 0,00
Merci
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
14 juil. 2014 à 17:37
14 juil. 2014 à 17:37
Bonjour,
Chez moi c'est en ordre.
Je vous renvoie une nouvelle fois : https://www.cjoint.com/?3GorKK0vNfE
Note : il est préférable d'utiliser la solution en mentionnant le nom de la feuille des données et ainsi on évite une correction dans la procédure si on change le nom ... !
Chez moi c'est en ordre.
Je vous renvoie une nouvelle fois : https://www.cjoint.com/?3GorKK0vNfE
Note : il est préférable d'utiliser la solution en mentionnant le nom de la feuille des données et ainsi on évite une correction dans la procédure si on change le nom ... !
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
14 juil. 2014 à 17:51
14 juil. 2014 à 17:51
Super, ça fonctionne.
Je vous remercie beaucoup.
Je vous aurai bien proposé de prendre un verre (sur Toulouse).
Merci encore pour vos services.
@ bientôt
Pajude
Je vous remercie beaucoup.
Je vous aurai bien proposé de prendre un verre (sur Toulouse).
Merci encore pour vos services.
@ bientôt
Pajude
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
14 juil. 2014 à 20:40
14 juil. 2014 à 20:40
Merci, de rien.
Salutations.
Le Pingou
Salutations.
Le Pingou
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
Modifié par Theo.R le 15/07/2014 à 10:36
Modifié par Theo.R le 15/07/2014 à 10:36
Bonjour tout le monde,
J'ai donc pu revoir ma première proposition, en effet elle était incomplète et j'ai du reprendre la formule pour prendre en compte tous les cas spécifiques.
Au final, ELLE MARCHE !! En tout cas avec tous les cas spécifiques que j'ai pu repérer. Je vous laisse regarder par vous même :
https://www.cjoint.com/?DGpkImrltdG
Le problème avait donc bien une solution sans recours aux macros ;)
A plus tard,
P.S: Pour ceux qui n'auraient pas le temps de regarder le document, la formule à entrer en FORMULE MATRICIELLE est la suivante :
=SI(J2<C6;"Date en J2 hors données";SI(J3>MAX(C6:D100);"Date en J3 hors données";SI(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100))=MIN(SI((C6:C100<=J2)*(D6:D100>=J2);C6:C100));J4*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);C6:C100));C6:C100));SI(J3=MAX(C6:C100);(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100));(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(1+J3-MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100)))*(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100))))))
J'ai donc pu revoir ma première proposition, en effet elle était incomplète et j'ai du reprendre la formule pour prendre en compte tous les cas spécifiques.
Au final, ELLE MARCHE !! En tout cas avec tous les cas spécifiques que j'ai pu repérer. Je vous laisse regarder par vous même :
https://www.cjoint.com/?DGpkImrltdG
Le problème avait donc bien une solution sans recours aux macros ;)
A plus tard,
P.S: Pour ceux qui n'auraient pas le temps de regarder le document, la formule à entrer en FORMULE MATRICIELLE est la suivante :
=SI(J2<C6;"Date en J2 hors données";SI(J3>MAX(C6:D100);"Date en J3 hors données";SI(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100))=MIN(SI((C6:C100<=J2)*(D6:D100>=J2);C6:C100));J4*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);C6:C100));C6:C100));SI(J3=MAX(C6:C100);(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100));(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(1+J3-MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100)))*(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100))))))
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
15 juil. 2014 à 11:42
15 juil. 2014 à 11:42
Bonjour,
Excellente la formule, le résultat est OK.
Seul Hic sur la première période, du 01/05/1999 au 30/04/2000, le montant est 51,74 au lieu de 25,87.
Cdt
Excellente la formule, le résultat est OK.
Seul Hic sur la première période, du 01/05/1999 au 30/04/2000, le montant est 51,74 au lieu de 25,87.
Cdt
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
15 juil. 2014 à 12:17
15 juil. 2014 à 12:17
C'est également la même erreur du 01/05/14 au 31/05/14 = 9,99 au lieu de 4,99.
du 01/11/00 au 30/04/01 = 30,35 au lieu de 15,17
L'erreur se répète à chaque période de dates sur la même ligne
du 01/11/00 au 30/04/01 = 30,35 au lieu de 15,17
L'erreur se répète à chaque période de dates sur la même ligne
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
15 juil. 2014 à 12:26
15 juil. 2014 à 12:26
Je vais regarder cela cet après-midi, l'erreur à lieu quand on sélectionne une période égale à une ligne exactement ?
--
--
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
15 juil. 2014 à 14:04
15 juil. 2014 à 14:04
Il y avait une erreur sur la fonction MIN(SI(...)) que je ne saurais expliquer, mais j'ai pu simplifier la fonction pour qu'elle marche.
Voici le nouveau doc avec la fonction corrigée :
https://www.cjoint.com/?DGpobaedTrm
P.S: ATTENTION au résultat par macro, il ne donne pas du tout le bon chiffre... dans l'exemple que j'ai laissé il donne 218,87 au lieu de 4,99...
En espérant que la formule soit maintenant parfaite ;)
Formule brut :
=SI(J2<C6;"Date en J2 hors données";SI(J3>MAX(C6:D100);"Date en J3 hors données";SI(MAX(SI((C6:C100<J3)*(D6:D100=J3);C6:C100))=MIN(SI((C6:C100=J2)*(D6:D100>J2);C6:C100));J4*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));C6:C100));SI(J3=MAX(C6:C100);(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100));(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(1+J3-MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100)))*(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100))))))
Voici le nouveau doc avec la fonction corrigée :
https://www.cjoint.com/?DGpobaedTrm
P.S: ATTENTION au résultat par macro, il ne donne pas du tout le bon chiffre... dans l'exemple que j'ai laissé il donne 218,87 au lieu de 4,99...
En espérant que la formule soit maintenant parfaite ;)
Formule brut :
=SI(J2<C6;"Date en J2 hors données";SI(J3>MAX(C6:D100);"Date en J3 hors données";SI(MAX(SI((C6:C100<J3)*(D6:D100=J3);C6:C100))=MIN(SI((C6:C100=J2)*(D6:D100>J2);C6:C100));J4*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));C6:C100));SI(J3=MAX(C6:C100);(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100));(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(1+J3-MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100)))*(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100))))))
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
Modifié par Le Pingou le 15/07/2014 à 14:56
Modifié par Le Pingou le 15/07/2014 à 14:56
Bonjour Theo.R,
Merci pour la formule, superbe travail, bravo.
En bien oui il y a une erreur dans la procédure, que pajude ma gentiment signalé, je vais la corriger.
Je vous signale au passage que le cas 14.11.2004 au 14.11.2004 soit 1 jour avec votre formule j'ai 50.90 ce qui est visiblement faux.... Elle est répétitive car j'ai omis une condition... !
Ps : en fait selon le voeu de pajude d'avoir le choix et résultat sur une autre feuille, votre formule ne convient pas... !
Salutations.
Le Pingou
Merci pour la formule, superbe travail, bravo.
En bien oui il y a une erreur dans la procédure, que pajude ma gentiment signalé, je vais la corriger.
Je vous signale au passage que le cas 14.11.2004 au 14.11.2004 soit 1 jour avec votre formule j'ai 50.90 ce qui est visiblement faux.... Elle est répétitive car j'ai omis une condition... !
Ps : en fait selon le voeu de pajude d'avoir le choix et résultat sur une autre feuille, votre formule ne convient pas... !
Salutations.
Le Pingou
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
15 juil. 2014 à 14:30
15 juil. 2014 à 14:30
Il y a encore une petite erreur, quand la date de début n'est pas une date égale à la colonne C.
Ex : du 28/04/2000 au 30/04/2000 = 26,08
30/05/2014 au 31/05/2014 = 5,32
Pour la macro, effectivement il y a aussi une petite erreur que j'ai signalé à Le Pingou
Je suis désolé de vous embêter.
Merci
Ex : du 28/04/2000 au 30/04/2000 = 26,08
30/05/2014 au 31/05/2014 = 5,32
Pour la macro, effectivement il y a aussi une petite erreur que j'ai signalé à Le Pingou
Je suis désolé de vous embêter.
Merci
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
15 juil. 2014 à 14:51
15 juil. 2014 à 14:51
Décidément !
J'ai (encore) corrigé ma formule pour les erreurs qui m'ont été relevées. N'hésitez pas à me dire s'il y a encore des cas que je n'aurais pas détectés.
Le doc :
https://www.cjoint.com/?DGpoXyYAB2Z
La formule (à valider en matricielle) :
=SI(J2<C6;"Date en J2 hors données";SI(J3>MAX(C6:D100);"Date en J3 hors données";SI(OU(MAX(SI((C6:C100<J3)*(D6:D100=J3);C6:C100))=MIN(SI((C6:C100=J2)*(D6:D100>J2);C6:C100));(MIN(SI((C6:C100>J2)*(D6:D100>J2);C6:C100))>J2)*(MAX(SI((C6:C100<J3)*(D6:D100=J3);D6:D100))=J3));J4*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));C6:C100));SI(J3=MAX(C6:C100);(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100));(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(1+J3-MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100)))*(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100))))))
A très vite,
J'ai (encore) corrigé ma formule pour les erreurs qui m'ont été relevées. N'hésitez pas à me dire s'il y a encore des cas que je n'aurais pas détectés.
Le doc :
https://www.cjoint.com/?DGpoXyYAB2Z
La formule (à valider en matricielle) :
=SI(J2<C6;"Date en J2 hors données";SI(J3>MAX(C6:D100);"Date en J3 hors données";SI(OU(MAX(SI((C6:C100<J3)*(D6:D100=J3);C6:C100))=MIN(SI((C6:C100=J2)*(D6:D100>J2);C6:C100));(MIN(SI((C6:C100>J2)*(D6:D100>J2);C6:C100))>J2)*(MAX(SI((C6:C100<J3)*(D6:D100=J3);D6:D100))=J3));J4*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));C6:C100));SI(J3=MAX(C6:C100);(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100));(1+MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100))-J2)*(12/365)*INDEX(B6:B100;EQUIV(MIN(SI((C6:C100<=J2)*(D6:D100>=J2);D6:D100));D6:D100))+ SOMME.SI.ENS(F6:F100;C6:C100;">"&J2;C6:C100;"<"&J3;D6:D100;">"&J2;D6:D100;"<"&J3)+(1+J3-MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100)))*(12/365)*INDEX(B6:B100;EQUIV(MAX(SI((C6:C100<=J3)*(D6:D100>=J3);C6:C100));C6:C100))))))
A très vite,
pajude
Messages postés
77
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
9 mars 2024
15 juil. 2014 à 15:28
15 juil. 2014 à 15:28
Désolé,
Il y a encore une erreur, du 30/04/2000 au 31/10/2000 = 13,08 (au lieu de 13,74)
de même du 01/05/2000 au 04/05/2003 = 81,66 (au lieu de 91,95)
Merci pour votre patience.
Il y a encore une erreur, du 30/04/2000 au 31/10/2000 = 13,08 (au lieu de 13,74)
de même du 01/05/2000 au 04/05/2003 = 81,66 (au lieu de 91,95)
Merci pour votre patience.