Somme avec 3 conditions sur période

Résolu/Fermé
Messages postés
260
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
28 décembre 2021
-
Messages postés
260
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
28 décembre 2021
-
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

1 réponse

Messages postés
260
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
28 décembre 2021
2
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 ?
Messages postés
260
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
28 décembre 2021
2
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 !
Messages postés
260
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
28 décembre 2021
2
Help
Messages postés
832
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
18 janvier 2022
66
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
Messages postés
260
Date d'inscription
jeudi 23 août 2012
Statut
Membre
Dernière intervention
28 décembre 2021
2
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 !
Messages postés
832
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
18 janvier 2022
66
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,