RechercheV sur plusieurs lignes et dans plusieurs feuilles

Fermé
Signaler
-
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
-
Bonjour, 95
Je suis loin d'être désespérer, mais j'ai besoin d'aide.

Je suis occupé de réaliser un tableau contenant les statistiques d'une année.
J'ai donc 12 feuilles (1 par mois) et une feuille de "Totaux".

Sur chaque feuille, donc pour chaque mois j'ai les données suivantes:
8 Equipes composées de x personnes.
Chaques équipes à 3 colonnes contenant des données comptabilisables.
Un total est calculé par équipe.

Jusque là tout va bien!

Sur ma feuille totale il me suffirait de reprendre un calcul simple additionnant les statistiques sur une adresse (colonne, ligne) précise!
Cependant, une personne peut passer d'une équipe à l'autre d'un mois à l'autre.

Ce qui implique que mes comptes ne seraient plus bon!

J'ai donc besoin pour bien faire d'une formule faisant ceci:
Trouver un nom dans une colonne (seul 2 colonnes reprennent des noms), en sachant qu'un nom peut apparaitre 2x dans une même colonne.
Lorsque ce nom est trouvé, prendre le nombre se trouvant dans la colonne à côté (JU/AC/IR) et réaliser une addition de chaque ligne où se trouverait ce nom pour l'ajouter dans la bonne case sur la feuille "TOTAUX".

J'espère que je suis bien compréhensible.

Pour info, ma formule actuelle est correcte, mais non digérée car... trop importante!
"=SOMME(SIERREUR(RECHERCHEV(B5;'Janvier'!B5:F21;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!B25:F41;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!B45:F61;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!B65:F81;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!I5:M21;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!I25:M41;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!I45:M61;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Janvier'!I65:M81;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!B5:F21;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!B25:F41;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!B45:F61;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!B65:F81;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!I5:M21;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!I25:M41;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!I45:M61;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Février'!I65:M81;2;FAUX);0);
SIERREUR(RECHERCHEV(B5;'Mars'!B5:F21;2;FAUX);0); ....) (Ceci allant jusque décembre...)


J'ai encore 1 contrainte! La formule doit être exécutable/compatible sur Excel 97...


Voici le fichier:
http://www.cjoint.com/c/GAueImVu7o8



Merci d'avance!
A voir également:

5 réponses

Messages postés
16546
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 janvier 2022
3 259
Bonjour,

dans ton envoi, BJ n'existe pas...
0
Bonjour @michel_m .
BJ est dans l'équipe 1 toute l'année puis dans l'équipe 5 Le mois de décembre Et donc egalement dans Totaux.

Cependant j'ai pris l'exemple de BJ mais ça peut être n'importe quelle personne que j'ajouterais dans mon tableau.
0
Up?
Pas de solutions?
0
Messages postés
55353
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 janvier 2022
17 224
Non, chris !
Si tu conserves cette façon de travailler, je n'en vois pas.

Quand je forme un stagiaire sur les formules à 3 dimensions et les tableaux consolidés, j'insiste sur le principe fondamental "le contenu de la colonne 1 doit être absolument le même dans tous les tableaux".

Dans ton cas de figure, si tes équipes sont de 12 personnes maximum, tes 17 lignes suffisent ; mais si elles peuvent atteindre 17 personnes, tous tes tableaux doivent comporter au moins 25 lignes.

Dans tes feuilles de Février à Totaux, la cellule B5 doit contenir la formule =Janvier!B5 à recopier dans B6:B21 ; B25:B41 ; B45:B61 ; B65:B81
> pareil en colonne I.

- Ainsi TOUTES les feuilles auront les mêmes listes de personnes.
- Il ne faut JAMAIS supprimer un nom dans la première feuille.
- Si BJ était en équipe 1 en janvier et passe en équipe 5 en février, son nom va figurer en B5 ET en I19 sur les 13 feuilles ; dans la feuille Janvier les cellules C5:F5 seront renseignées, les cellules J19:M19 seront vides ; dans la feuille Février les cellules C5:F5 seront vides, les cellules J19:M19 seront renseignées.
Dans la feuille Totaux saisir la formule =SOMME(Janvier:Décembre!C5) en C5, à recopier dans toutes les cellules concernées.

Les cellules C5:F5 et J19:M19 afficheront donc des données pour le même BJ ; il conviendra de travailler sur cette dernière feuille, avec la fonction SOMME.SI, pour cumuler les résultats de BJ et des autres doublons.

Cordialement.
C'est bien, la retraite ! Surtout aux Antilles ... :-) 
Raymond (INSA, AFPA, CF/R)
0
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
849
Bonjour à tous,

Ta fonction ne peut fonctionner en version 97/2003.

SIERREUR n'était pas prise en charge dans cette version et je pense que les réf 3D non plus et tu dois avoir trop d'arguments pour ta fonction SOMME().
remarque : le SI(NON(ESTERREUR(maformule));maformule;sinon) peut remplacer SIERREUR()) et les + la SOMME().

Dans la version qui t'intéresse, tu seras limité en nombre de caractères pour ta formule.

Laisse tomber les RECHERCHEV() et passe aux SOMMEPROD().

En C5, tu saisis la formule suivante :
=SI($B5=0;"";SOMMEPROD((Janvier!$B$5:$B$81=$B5)*Janvier!C$5:C$81)+SOMMEPROD((Janvier!$I$5:$I$81=$B5)*Janvier!J$5:J$81)+SOMMEPROD((Février!$B$5:$B$81=$B5)*Février!C$5:C$81)+SOMMEPROD((Février!$I$5:$I$81=$B5)*Février!J$5:J$81)+SOMMEPROD((Mars!$B$5:$B$81=$B5)*Mars!C$5:C$81)+SOMMEPROD((Mars!$I$5:$I$81=$B5)*Mars!J$5:J$81)+SOMMEPROD((Avril!$B$5:$B$81=$B5)*Avril!C$5:C$81)+SOMMEPROD((Avril!$I$5:$I$81=$B5)*Avril!J$5:J$81)+SOMMEPROD((Mai!$B$5:$B$81=$B5)*Mai!C$5:C$81)+SOMMEPROD((Mai!$I$5:$I$81=$B5)*Mai!J$5:J$81)+SOMMEPROD((Juin!$B$5:$B$81=$B5)*Juin!C$5:C$81)+SOMMEPROD((Juin!$I$5:$I$81=$B5)*Juin!J$5:J$81)+SOMMEPROD((Juillet!$B$5:$B$81=$B5)*Juillet!C$5:C$81)+SOMMEPROD((Juillet!$I$5:$I$81=$B5)*Juillet!J$5:J$81)+SOMMEPROD((Aout!$B$5:$B$81=$B5)*Aout!C$5:C$81)+SOMMEPROD((Aout!$I$5:$I$81=$B5)*Aout!J$5:J$81)+SOMMEPROD((Septembre!$B$5:$B$81=$B5)*Septembre!C$5:C$81)+SOMMEPROD((Septembre!$I$5:$I$81=$B5)*Septembre!J$5:J$81)+SOMMEPROD((Octobre!$B$5:$B$81=$B5)*Octobre!C$5:C$81)+SOMMEPROD((Octobre!$I$5:$I$81=$B5)*Octobre!J$5:J$81)+SOMMEPROD((Novembre!$B$5:$B$81=$B5)*Novembre!C$5:C$81)+SOMMEPROD((Novembre!$I$5:$I$81=$B5)*Novembre!J$5:J$81)+SOMMEPROD((Décembre!$B$5:$B$81=$B5)*Décembre!C$5:C$81)+SOMMEPROD((Décembre!$I$5:$I$81=$B5)*Décembre!J$5:J$81))

Elle fera le job.
Tu recopies partout pour tes équipes 1 à 4.

Pour les équipes 5 à 8, tu remplaces =$B5 par =$I5.

Cordialement
0
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
849
Re,

un petit complément :
si tu as installé Morefunc de Laurent Longre, tu auras une formule plus compacte en C5 :
=SI($B5=0;"";SOMMEPROD((TAB3D(Janvier:Décembre!$B$5:$B$81)=$B5)*TAB3D(Janvier:Décembre!C$5:C$81))+SOMMEPROD((TAB3D(Janvier:Décembre!$I$5:$I$81)=$B5)*TAB3D(Janvier:Décembre!J$5:J$81)))


cordialement
0