OVH Cloud OVH Cloud

Récupérer une valeur dans un tableau

19 réponses
Avatar
JLS
Bonjour

J'aurai besoin d'un petit coup de pouce SVP

je reçois un planning de travail sous forme d'un tableau de ce type

JOUR 1/2 JOURNEE CLIENT
10 juin 2005 matin TRUC
10 juin 2005 Apres midi MACHIN
11 juin 2005 matin CHOSE
11 juin 2005 Apres midi BIDULE
12 juin 2005 matin MACHIN
12 juin 2005 Apres midi BINZ

(Ce tableau va du 1er janvier au 31 décembre de l'année)

En amont, je ressorts grace à RECHERCHV le lieu où je suis à la date du jour

Ce matin je suis : TRUC <- =RECHERCHEV((AUJOURDHUI());planning;3;FAUX)
Cet apres je suis: #N/A <- Au secours !!!

mais par cette formule, je ne ressort que la 1 ère date du jour trouvée
c'est à dire celle dans la ligne du matin
j'ai essayé de trouver une soluce avec DECALER INDIRECT ou INDEX mais sans
succès.

COMMENT FAIRE pour récupérer le Client qui correspond à la date du jour mais
dans la ligne de l'apres midi ??
un espèce de recherchV + 1 en somme ! :=)

Par avance, merci bien de votre aide

10 réponses

1 2
Avatar
ChrisV
Bonjour JLS,

Avec la plage de données A2:Cxx nommée ici "Zn" et la date recherchée en E1
(à saisir sur une plage de 2 cellules verticales (E2:E3 par ex.), sans les
{ } et valider par Ctrl+Shift+Entrée)

{=SI(ESTERR(PETITE.VALEUR(SI(DECALER(Zn;;;;1)á;1+LIGNE(Zn)-CELLULE("ligne";Zn));LIGNE(INDIRECT("1:"&LIGNES(Zn)))));"";INDEX(Zn;PETITE.VALEUR(SI(DECALER(Zn;;;;1)á;1+LIGNE(Zn)-CELLULE("ligne";Zn));LIGNE(INDIRECT("1:"&LIGNES(Zn))));3))}


ChrisV


"JLS" a écrit dans le message de news:

Bonjour

J'aurai besoin d'un petit coup de pouce SVP

je reçois un planning de travail sous forme d'un tableau de ce type

JOUR 1/2 JOURNEE CLIENT
10 juin 2005 matin TRUC
10 juin 2005 Apres midi MACHIN
11 juin 2005 matin CHOSE
11 juin 2005 Apres midi BIDULE
12 juin 2005 matin MACHIN
12 juin 2005 Apres midi BINZ

(Ce tableau va du 1er janvier au 31 décembre de l'année)

En amont, je ressorts grace à RECHERCHV le lieu où je suis à la date du
jour

Ce matin je suis : TRUC <- =RECHERCHEV((AUJOURDHUI());planning;3;FAUX)
Cet apres je suis: #N/A <- Au secours !!!

mais par cette formule, je ne ressort que la 1 ère date du jour trouvée
c'est à dire celle dans la ligne du matin
j'ai essayé de trouver une soluce avec DECALER INDIRECT ou INDEX mais sans
succès.

COMMENT FAIRE pour récupérer le Client qui correspond à la date du jour
mais
dans la ligne de l'apres midi ??
un espèce de recherchV + 1 en somme ! :=)

Par avance, merci bien de votre aide




Avatar
abcd
la formule suivante me semble plus simple:

Cet apres je suis:
=INDEX(planning ; EQUIV(AUJOURDHUI();planning;0)+1 ; 3)
Avatar
ChrisV
Bonjour abcd,

la formule suivante me semble plus simple...


Elle l'est effectivement...
mais je l'aurai plutôt vu avec les références suivantes
INDEX(C1:C7;EQUIV(AUJOURDHUI();A1:A7;0)+1;0), plutôt que la plage "planning"
définie par JLS et utilisée dans RECHERCHEV...

D'autre part, je trouve beaucoup plus esthétique de faire en sorte qu'une
seule formule, plutôt que 2, renvoie les résultats souhaités initialement...


ChrisV


"abcd" a écrit dans le message de news:
eKw%
la formule suivante me semble plus simple:

Cet apres je suis:
=INDEX(planning ; EQUIV(AUJOURDHUI();planning;0)+1 ; 3)


Avatar
abcd
c'est à dire qu'il faut aussi prendre l'habitude de penser au suivi
(évolutions, modifications, etc.) des formules simples s'avèrent
finalement préférables en général

la simplicité est la sophistication suprême
Avatar
AV
la formule suivante me semble plus simple:
=INDEX(planning ; EQUIV(AUJOURDHUI();planning;0)+1 ; 3)


Et tu es sur que ça fonctionne (en l'état) ??

AV

Avatar
abcd
Et tu es sur que ça fonctionne (en l'état) ??


le principe et la structure de la fonction: oui...
maintenant à toi d'adapter à tes cellules et à tes besoins (consu lte
l'aide de chaque fonction si cela t'aide)

INDEX permet de choisir une cellule dans une liste (ou un tableau)
tandis que EQUIV cherche une valeur dans la liste ou le tableau: la
différence avec RECHERCHEV est surtout que l'on peut chercher dans une
liste et prendre le résultat dans une autre ! (ici, on ajoute +1 pour
choisir la ligne d'après ce qui revient à un simpel décalage)

il y a peu de paramètres et peu de fonctions, ce qui rend la
maintenance plus facile. La paire INDEX / EQUIV est plus souple que
RECHERCHE : imagine que tu insères une colonne dans ton tableau,
l'indice 3 ne va pas se changer en 4 et ta formule va devenir fausse.
TAndis qu'avec INDEX, chaque zone est nommée, et les références son t
donc mises à jour

Avatar
ChrisV
L'objectif principal me semble t-il, est de produire avant des formules qui
fonctionnent...


ChrisV


"abcd" a écrit dans le message de news:
e9lvL$
c'est à dire qu'il faut aussi prendre l'habitude de penser au suivi
(évolutions, modifications, etc.) des formules simples s'avèrent
finalement préférables en général

la simplicité est la sophistication suprême
Avatar
AV
=INDEX(planning ; EQUIV(AUJOURDHUI();planning;0)+1 ; 3)
Et tu es sur que ça fonctionne (en l'état) ??



le principe et la structure de la fonction: oui...


Ben moi je dirais mais non, mais non !
Et pas plus sur la cas présent que sur le principe !
La fonction EQUIV n'est absolument pas adaptée pour une recherche sur plusieurs
colonnes, ce qui est le cas dans ta "solution" avec la plage nommée "planning" !

Pour les explications sur INDEX/EQUIV je te remercie mais... j'avais déjà
compris

... il y a peu de paramètres et peu de fonctions, ce qui rend la
maintenance plus facile. La paire INDEX / EQUIV est plus souple que
RECHERCHE : imagine que tu insères une colonne dans ton tableau,
l'indice 3 ne va pas se changer en 4 et ta formule va devenir fausse.
TAndis qu'avec INDEX, chaque zone est nommée, et les références sont
donc mises à jour


Ben justement avec la syntaxe de la fonction INDEX que tu emploies plage de
plusieurs colonnes(plage "planning") et un 2° argument sous forme de constante
(3 dans ton exemple) , on retombe dans les errements de RechercheV !
La syntaxe corrigée de ta solution serait
=INDEX(planning; EQUIV(AUJOURDHUI();plage jours;0)+1; 3)
mais si on insère une colonne dans le tableau "planning" ben...plouf...plouf !
Moralité et sous réserve que la liste des jours soit chronologique et que
"aprèm" sous toujours après "matin", pour récupérer le nom du client de l'aprèm
:
=INDEX(plageClients;EQUIV(AUJOURDHUI();plageJours;0)+1)

AV.... fondateur de l'académie anti-rechercheTruc


Avatar
abcd
J'ai cru comprendre qu'il cherchait seulement dans la première colonne
seulement et si tel n'est pas le cas c'est une erreur d'interprétation
de la question. Quoi qu'il en soit, ma vision des choses n'est pas de
lui donner clef en main une solution toute faite, mais plutôt de l'aide r
à apprendre. Ce type de formule ne peut que lui être profitable dès lors
qu'il fait ce type de manipulations. Ensuite, c'est à lui (pas à toi) de
discuter ce genre de questions de toute façon:
il a plusieurs visions, il lira l'aide de chaque fonction et aura
ainsi une meilleure maîtrise d'excel et surtout fera son choix lui mê me.
Avatar
AV
Le top de mauvaise foi....!

AV
1 2