[RESOLU] RechercheV ?

Everlast03

XLDnaute Occasionnel
Re-bonjour le forum !

J'ai (encore :eek:) une question. Je souhaite récupérer le total de mon nombre d'heure sur le fichier suivante (voir image).

J'ai essayé de faire une rechercheV (une liste contenant tous les services est cachée, je chercher par exemple le service "achat" dans cette liste, ma table est B7 à DX500 par exemple et je souhaite avoir la colonne "K" soit 9 c'est cela ?

Pourtant je n'y arrive pas ...

Merci d'avance.
 

Pièces jointes

  • 5.jpg
    5.jpg
    45.5 KB · Affichages: 76
  • 5.jpg
    5.jpg
    45.5 KB · Affichages: 82
  • 5.jpg
    5.jpg
    45.5 KB · Affichages: 79
Dernière édition:

mth

XLDnaute Barbatruc
Re : RechercheV ?

re :)

Voici quelques commentaires autour de la formule utilisée dans ton fichier :)
Je pars de l'aide Excel sur ces fonctions EQUIV() et DECALER() :
(... que je t'invite à consulter car cette aide est très bien faite)

La formule:

Code:
=DECALER('Heures travaillées'!$A$1;EQUIV($A$1;'Heures travaillées'!$B:$B;0)-1;EQUIV(B$3;'Heures travaillées'!4:4;0)-1;;)

Aide Excel sur la fonction DECALER():

Renvoie une référence à une plage qui correspond à un nombre déterminé de lignes et de colonnes d'une cellule ou plage de cellules. La référence qui est renvoyée peut être une cellule unique ou une plage de cellules. Vous pouvez spécifier le nombre de lignes et de colonnes à renvoyer.
Syntaxe:
DECALER(réf;lignes;colonnes;hauteur;largeur)

réf est la référence par rapport à laquelle le décalage doit être opéré. Ici, on part de la cellule A1 de l'onglet 'Heures travaillées'

lignes est le nombre de lignes vers le haut ou vers le bas dont la cellule supérieure gauche de la référence renvoyée doit être décalée. Si l'argument lignes est égal à 5, la cellule supérieure gauche de la référence est décalée de cinq lignes en dessous de la référence. L'argument lignes peut être positif (c'est-à-dire en dessous de la référence de départ) ou négatif (c'est-à-dire au-dessus de la référence de départ).
Ici, le décalage vers le bas se calcule avec la fonction EQUIV() :

Code:
EQUIV($A$1;'Heures travaillées'!$B:$B;0)-1
On cherche l'équivalent de A1, dans la colonne B de l'onglet 'Heures travaillées'. Le dernier argument de la fonction est zéro pour indiquer une correspondance exacte (vois l'aide sur la fonction EQUIV() )

On enlève 1 à la fin pour tenir compte du décalage naturel (je pars de ligne 1, si je veux décaler de 1 je me retrouve ligne 2, si je veux rester en ligne 1 je retranche 1)
Ici, pour le service Direction, EQUIV($A$1;'Heures travaillées'!$B:$B;0)-1 renvoie le chiffre 6, soit 6 lignes plus bas que la ligne 1 (donc la ligne 7)

colonnes est le nombre de colonnes vers la droite ou vers la gauche dont la cellule supérieure gauche de la référence renvoyée doit être décalée. Si l'argument colonnes est égal à 5, la cellule supérieure gauche de la référence est décalée de cinq colonnes vers la droite par rapport à la référence. L'argument colonnes peut être positif (c'est-à-dire à droite de la référence de départ) ou négatif (c'est-à-dire à gauche de la référence de départ).
Ici, le numéro de colonne se calcule également avec Equiv:
Code:
EQUIV(B$3;'Heures travaillées'!4:4;0)-1
On cherche l'équivalent exact de B3, onglet 'Heures travaillées', sur toute la ligne 4 (notée 4:4)
EQUIV(B$3;'Heures travaillées'!4:4;0)-1 renvoie 10 soit pour cet exemple la colonne correspondant bien au mois de janvier.

hauteur est la hauteur, exprimée en nombre de lignes que la référence renvoyée doit avoir. L'argument hauteur doit être un nombre positif.
largeur est la largeur, exprimée en nombre de colonnes que la référence renvoyée doit avoir. L'argument largeur doit être un nombre positif.

Pour ces deux derniers points, je n'ai rien mis entre les ; mais j'aurais pu mettre 1 qui est la valeur par défaut dans ces cas là.

Voili voilou, ... et poutant... ça ne marche pas pouir janvier 2010 ????

Ben voui, parce que pour cette colonne tu n'as pas respecté la même logique que pour les autres colonnes, au lieu de l'écrire sur la droite, tu renseignes le mois quelques colonnes avant en fusionnant les cellules.
Jamais facile la fusion de cellules, et encore moins facile si on change de logique d'une colonne à l'autre. Si tu respectes la même logique partout, la formule fonctionnera.

Voilà Everlast, j'espère que cela pourra t'aider, mais si mes explications ne sont pas claires n'hésite pas à revenir :)

Bon courage pour ton travail et à bientôt,

mth
 

Everlast03

XLDnaute Occasionnel
Re : RechercheV ?

Bonjour mth, le forum !

Merci beaucoup pour l'aide en tout cas ! (Mon administrateur réseau n'a pas installé l'aide sur EXCEL ...).

(Par contre pour le mois de janvier je n'ai pas bien compris...
C'est un fichier que j'ai repris en fait donc je ne sais pas vraiment ce qu'il y a eu dessus... :(
)

EDIT : Ca y est j'ai compris ! J'avais pas vu ! Je vais maintenant essayer d'appliquer cette formule à toute mes feuilles !

Merci encore et bonne journée à tous !
 
Dernière édition:

Everlast03

XLDnaute Occasionnel
Re : RechercheV ?

Dernière question (j'espère :D) !
Si je veux mettre un :

Code:
=SI('Heures travaillées'!K7="";"";1)

avec la formule :

Code:
=DECALER('Heures travaillées'!$A$1;EQUIV($A$1;'Heures travaillées'!$B:$B;0)-1;EQUIV(B$3;'Heures travaillées'!4:4;0)-1;;)

Je dois encore utiliser la fonction DECALER pour passer à 4 colonnes vers la droite ?

Merciiiiiiiiii :rolleyes:
 

mth

XLDnaute Barbatruc
Re : RechercheV ?

Bonjour Everlast,

Ta piste est bonne mais on peut simplifier. Si la date n'existe pas sur la ligne 4 de l'onglet "Heures travaillées", la formule actuelle te renvoie #N/A.

Ce #N/A est en fait renvoyé par la dernière partie de la formule, celle qui calcule le numéro de colonne, par exemple pour décembre 2011 :
Code:
EQUIV(AK$3;'Heures travaillées'!4:4;0)-1
cette formule renvoie #N/A car la date n'existe pas dans l'onglet précédent.
Il suffit donc de tester le résultat de cette fonction EQUIV(), à l'aide d'une autre fonction: ESTNA()
Cette petite fonction renvoie VRAI quand la valeur analysée correspond à l'erreur #N/A, FAUX dans le cas contraire.

Donc pour tester l'existence de la date:
Code:
=ESTNA(EQUIV(AK$3;'Heures travaillées'!4:4;0)-1)
Cette formule renverra VRAI si la date cherchée n'existe pas.

Ce qui donne au final pour la formule en B63 de ton onglet "Direction" (et copiée sur la droite):
Code:
=SI(ESTNA(EQUIV(B$3;'Heures travaillées'!4:4;0)-1);0;DECALER('Heures travaillées'!$A$1;EQUIV($A$1;'Heures travaillées'!$B:$B;0)-1;EQUIV(B$3;'Heures travaillées'!4:4;0)-1;;))

(j'ai mis 0 et pas "", plus facile pour les calculs ensuite, rien n'empêchant de masquer l'affichage des zéros pour une question esthétique)

J'espère que ces explications pourront t'aider.

Tu trouveras en PJ ton fichier avec la formule, avec en prime la copie PDF de l'aide Excel sur les fonctions utilisées ici (Decaler, Equiv, Estna)

Sourire.... et fait moi plaisir Everlast03, demande (et exige) que ton informatitien installe proprement Excel, avec l'aide!! c'est tout de même un minimum !! Je ne vois pas comment tu peux travailler sans ça ...

Très bonne journée à toi et à bientôt :)

mth
 

Pièces jointes

  • V14.zip
    215.7 KB · Affichages: 18
Dernière édition:

Discussions similaires

Réponses
3
Affichages
201

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87