Recherche Multicritère et Synthèse dynamique des données

Bonsoir à tous. J’ai besoin de votre aide pour réaliser une recherche multicritère sur un fichier issu de l’exportation d’un logiciel de paie. Le fichier est certes mal structuré a mon avis mais il est ainsi concu. Vous trouverez le fichier joint.
La feuille nommée RECAP FIS est le fichier source
La feuille nommée "Synthèse Frais Personnels" a vocation a recevoir les données synthètisées dynamiquement

La feuille nommée “Tables” a été crée par moi-même pour divers traitement (validation de données etc…

Je joint les fichiers avec des commentaires sur la feuilleSynthèse Frais.
Merci par avance de votre aide.FicheIndivSalarieB.xlsm (359,5 Ko)

Bonjour @charlessy13

Si j’ai bien compris la demande, la formule SOMME.SI.ENS devrait répondre au soucis.

Elle s’utilise comme ceci avec votre exemple:
=SOMME.SI.ENS(Tableau6[[#Tout];[1]];Tableau6[[#Tout];[Année]];'Synthèse Frais Personnels'!$B5;Tableau6[[#Tout];[Code]];'Synthèse Frais Personnels'!$C4)
c’est à dire: SOMME.SI.ENS(colonneàadditionner;colonnecitère1;critère1 etc)

Je pense qu’il est préférable d’utiliser un tableau croisé dynamique dans votre cas.
J’ai mis en exemple en onglet TCD

Si vous préférez les formules:
Attention, si vous supprimez votre tableau et le remplacez par un autre, la formule ci-dessus ne fonctionnera plus (le “tableau6” sera peut être “tableau8” ou autre)
Je me suis donc permis de rajouter une petite macro qui récupère le nom du tableau en double cliquant en C1 (onglet Synthèse Frais Personnels).
Avec la formule suivante:
=SOMME.SI.ENS(INDIRECT(CONCATENER($C$1;"[";$A5;"]]"));INDIRECT(CONCATENER($C$1;"[Année]]"));'Synthèse Frais Personnels'!$B5;INDIRECT(CONCATENER($C$1;"[Code]]"));'Synthèse Frais Personnels'!C$4) on anticipe le problème.
Bon après si vous changez le nom des onglets, ça ne fontionnera plus non pljus :crazy_face:

Donc pour faire plus clair, je vous recommande le TCD :slight_smile:
Votre fichier: FicheIndivSalarieB.xlsm (470,5 Ko)

PS: heuuuu, je sais pas, mais ça ressemble vraiment à des données réelles dans votre fichier, si c’est le cas, à l’avenir, faites un fichier avec données factices, c’est beaucoup plus prudent! (dans le fichier retour, j’ai changé tous les noms par Robert Smith :wink: )

1 J'aime

Bonjour @charlessy13,
Salut @Nono, :wink:

@charlessy13, une proposition différente:

J’obtiens les mêmes résultats que @Nono, mais avec la fonction “SOMMEPROD(matrice1, [matrice2], [matrice3], …)”

Feuille “Synthèse Frais Personnels”

En “C5”

=SOMMEPROD((Tableau6[Code]=C$4)*(Tableau6[Année]=$B5)*(Tableau6[[#En-têtes];[1]:[12]]=$A5)*Tableau6[[1]:[12]])

Copier / Coller la formule sur toutes les autres cellules concernées.

Fichier ICI==> charlessy13 FicheIndivSalarieB.xlsx (370,6 Ko)

Cordialement.

Salut @Nono,

Robert Smith où Roger Smith :upside_down_face:

“Robert James Smith né le 21 avril 1959 à Blackpool dans le Lancashire, est un auteur-compositeur-interprète et producteur anglais.”

“Roger Smith né à : Johannesburg en 1960 est un écrivain. Il a grandi à Johannesburg avant de s’installer au Cap”

:joy: Cordialement.

Bonjour Nono.
Un grand Merci à vous et a mdo100 pour ces trois options. Chacune d’elles me fait avancer d’un grand pas en compétence et donc je ne vous remercierai jamais assez… Je garde les trois.

Je vous souhaite une excellente journée, la mienne commence bien grâce a vos compétences et votre bienveillance.:star_struck:

Bonjour mdo100

Comme à Nono, un grand Merci. la solution comme toujours est rapide et efficace. Pour ne rien vous cacher, depuis que j’ai fait votre connaissance sur ce site, jai bcp progressé et surtout rassuré de toujours trouver la solution à tous mes problèmes Excel.

Merci a vous tous, bénévoles anonymes,lumineux et éclairants. Que votre générosité soit constamment dans vos vies récompensée.

A bientôt sans doutes pour de nouveaux problèmes… vites résolus.:star_struck:

1 J'aime

Re mdo100

Pouvez vous m’expliquer le dernier argument de la formule ?
=SOMMEPROD((Tableau6[Code]=C$4)(Tableau6[Année]=$B5)(Tableau6[[#En-têtes];[1]:[12]]=$A5**)Tableau6[[1]:[12]])*

Merci

@charlessy13,

*Tableau6[[1]:[12]] Correspond à l’ensemble des cellules de “G3 à R2890”

Cdlt.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.