Somme avec 3 conditions sur période

Résolu/Fermé
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - Modifié le 17 oct. 2019 à 17:17
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - 23 oct. 2019 à 09:19
Bonjour,

Je souhaite rapprocher des données de 2 fichiers en utilisant plusieurs clés d'entrées : un numéro d'agent ainsi que des dates.
La problématique étant que pour une même période dans un fichier nous n'avons qu'une ligne et que dans le deuxième fichier, la période peut être scindée en plusieurs lignes.

1er fichier : (Colonne de A à J) > formules en J

NUM NOM PRENOM DEB P1 FIN P2 B TT Montant récupéré
10 TOTO X X 27/08/2018 M 31/08/2018 S 10 1110 633,05
10 TOTO X X 03/09/2018 M 07/09/2018 S 10 1110 728,01

10 TOTO X X 27/08/2018 M 07/09/2018 S 10 1110 0

J3=SOMMEPROD(([Fichier2.xlsx]Feuil1!$A$2:$A$49999=$A2)*([Fichier2.xlsx]Feuil1!$D$2:$D$49999=$D2)*([Fichier2.xlsx]Feuil1!$E$2:$E$49999=$F2)*([Fichier2.xlsx]Feuil1!$J$2:$J$49999))

J4=SOMMEPROD(([Fichier2.xlsx]Feuil1!$A$2:$A$49999=$A3)*([Fichier2.xlsx]Feuil1!$D$2:$D$49999=$D3)*([Fichier2.xlsx]Feuil1!$E$2:$E$49999=$F3)*([Fichier2.xlsx]Feuil1!$J$2:$J$49999))


J6=SOMMEPROD(([Fichier2.xlsx]Feuil1!$A$2:$A$49999=$A5)*([Fichier2.xlsx]Feuil1!$D$2:$D$49999=$D5)*([Fichier2.xlsx]Feuil1!$E$2:$E$49999=$F5)*([Fichier2.xlsx]Feuil1!$J$2:$J$49999)) .......je devrais avoir 1361.06 (633.05+728.01) au lieu de 0 .

2ème fichier source : (colonnes de A à J)

NUM NOM AN DEB FIN NB A TOT AUTRE MONTANT
10 TOTO X 2018 27/08/2018 31/08/2018 5 J 2340 2912,04 633,05
10 TOTO X 2018 03/09/2018 07/09/2018 5 J 2340 2912,04 728,01

Si pas de solution par formule, je prend une solution par macro....

Quand la période est éclatée sur 2 lignes, sommeprod ne fonctionne pas...Je souhaite récupérer le montant total sur la période que ce soit en 1 ligne ou 2 lignes.

Merci d'avance pour votre aide !

Cordialement,



Configuration: Windows / Internet Explorer 11.0
A voir également:

1 réponse

PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 21
17 oct. 2019 à 18:58
Le traitement doit se faire sur 15.000 lignes à minima, sommeprod est consommateur de mémoire et délai de réponse. Une macro serait-elle préférable ?
0
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 21
17 oct. 2019 à 19:01
Sommeprod rectifié :

J3=SOMMEPROD(([Fichier2.xlsx]Feuil1!$A$2:$A$49999=$A2)*([Fichier2.xlsx]Feuil1!$D$2:$D$49999>=$D2)*([Fichier2.xlsx]Feuil1!$E$2:$E$49999<=$F2)*([Fichier2.xlsx]Feuil1!$J$2:$J$49999))

Je cherche la traduction en vba,merci !
0
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 21
18 oct. 2019 à 09:33
Help
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
18 oct. 2019 à 17:22
Bonjour,

Difficile sans tes feuilles Excel, mais a priori ta formule en J3 doit porter sur les valeurs de la ligne 3 et non pas 2.

Essaie avec ceci
J3=SOMMEPROD(([Fichier2.xlsx]Feuil1!$A$2:$A$49999=$A3)*([Fichier2.xlsx]Feuil1!$D$2:$D$49999>=$D3)*([Fichier2.xlsx]Feuil1!$E$2:$E$49999<=$F3)*([Fichier2.xlsx]Feuil1!$J$2:$J$49999))

Cordialement
0
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 21
18 oct. 2019 à 20:31
Merci ALS35, C'est parfait ! J'ai essayé de traduire en vba avec soutifs mais je piétine ! Peux-tu m'aider stp . Merci d'avance !
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
21 oct. 2019 à 09:55
Bonjour,

Voir fichier joint.
Tu peux essayer aussi avec SOMME.SI.ENS et comparer avec SOMMEPROD.
J'ai fait également une petite macro en essayant de réduire le temps de réponse, tu te mets dans la ligne voulue et tu lances la macro par le bouton.
A adapter à tes données et à ce que tu veux faire.
https://www.cjoint.com/c/IJvhZerQgiP

Cordialement,
0