Problème fonction RECHERCHEV dans EXCEL

Résolu/Fermé
Grainedetoile Messages postés 8 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 6 juillet 2012 - 14 oct. 2007 à 11:08
 shakyamuni22 - 20 mai 2008 à 14:36
Bonjou à toutes et à tous...

Cela fait déjà un bon moment que je vous lis, et n'ai jamais encore eu l'occasion de poster ici. Je commence par un appel à tous les vrais experts excel, parce que là, je sèche. J'espère pouvoir à mon tour donner des tuyaux par la suite!

Alors voilà : j'utilise la formule suivante =RECHERCHEV(JOUR(A1);octobre;3;FAUX)
dans A1, il y a =aujourdhui()
En clair, je recherche dans la table que j'ai appelé "octobre" la valeur du jour actuel, et renvoie la valeur correspondante sur la même ligne dans la troisième colonne de la table.
Impec, ça marche.

Là où ça se complique, c'est que je souhaite automatiser tout ça, et ne plus taper le mot octobre à la main.
J'ai essayé plein de trucs, je vous livre le dernier en date...
je me suis créée une table "year" qui contient les numéros des mois et les mois en lettre.
je retourne "octobre" en utilisant =RECHERCHEV(MOIS(A1);year;2;FAUX)
ça marche toujours

Mais si j'utilise la fomule =RECHERCHEV(JOUR(A1);RECHERCHEV(MOIS(A1);year;2;FAUX);3;FAUX) ça ne marche plus !
Pourtant, même en décomposant tout, je ne comprends pas. Je n'arrive pas à mettre en évidence un conflit de type, et j'y perds mon latin. Tant que octobre est entré à la main, ça marche. Mais s'il n'est pas tapé directement dans la formule, il ya toujours erreur.

Qui aurait une explication? (une solution serait encore mieux ;-)) Merci

Grainedetoile
A voir également:

11 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
14 oct. 2007 à 12:31
en combinant INDIRECT et DECALER ça a l'air de marcher
=RECHERCHEV(JOUR($A$1);DECALER(INDIRECT(RECHERCHEV(MOIS(A1);year;2;FAUX));0;0);3;FAUX)
Je te laisse tester de façon plus exhaustive
Mais utiliser 2-3 cellules serait plus clair ;-)
eric
2
Grainedetoile Messages postés 8 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 6 juillet 2012 1
14 oct. 2007 à 12:55
En combinant les deux (decaler et indirect) ça marche...
je vous livre la formule brute finale

=RECHERCHEV(JOUR(G38);DECALER(INDIRECT(RECHERCHEV(MOIS(G38);B37:C39;2;FAUX));0;0;30;3);3;FAUX)

Merci !
1
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
14 oct. 2007 à 13:17
Attention, tu forces la taille de ta plage à 30 lignes et 3 colonnes avec ...;30;3) (ce qui n'évoluera plus même si tu modifies la plage de ta reference 'octobre'). Ces argument sont optionnels.
Regarde la formule en 6
eric
1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
14 oct. 2007 à 11:29
bonjour

En clair, je recherche dans la table que j'ai appelé "octobre" la valeur du jour actuel

Je suppose que c'est une plage nommée ?


Mais si j'utilise la fomule =RECHERCHEV(JOUR(A1);RECHERCHEV(MOIS(A1);year;2;FAUX);3;FAUX) ça ne marche plus !

Ta formule ne peux pas te permettre de trouver une plage "nommée"

Tu as utilisé des noms de mois pour nommer tes plage et ta formule avec year ne te donne que des valeurs de cellule.

Si l'explication n'oriente pas assez ta recherche, précise ton interrogation.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Grainedetoile Messages postés 8 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 6 juillet 2012 1
14 oct. 2007 à 11:34
Merci de ta réponse qui a été sacrément rapide

OK, alors comment fait on pour qu'une valeur de cellule (qui est un texte) devienne un nom de plage(qui est un texte aussi, non?)
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
14 oct. 2007 à 11:54
Bonjour,

INDIRECT() est sensé fonctionner avec un nom défini comme référence. Mais je t'avoue que je n'ai pas testé avec ta formule.
Ou sinon essayer de combiner avec DECALER(ref;0;0)
Tu nous diras... :-)
eric
0
Grainedetoile Messages postés 8 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 6 juillet 2012 1
14 oct. 2007 à 12:03
bonne idée, mais ça marche pas...
INDIRECT semble marcher pour une cellule mais pas pour une plage de cellules ;-(
Merci quand même!
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
14 oct. 2007 à 12:08
et DECALER(ref;0;0) ne passe pas non plus ? lui retourne une plage, reste à voir s'il converti bien ton nom
0
Bonjour,
je ne suis pas un pro d'excel, je débute

j'ai construit un tableau de personnels ou dans une colonne j'ai précisé au regar du nom, prénom, etc... s'il s'agit d'un homme ou femme. Dans une autre colonne également j'ai mis son métier (macon, plombier, etc.).

Je souhaite maintenant pouvoir mettre une formule qui puisse fairte la synthèse suivante:


total des hommes dont le métier est plombier
total des femmes dont le métier est plombier

ainsi de suite par métier et pourquoi pas ensuite par ville

Je ne sais pas l'écrire J'ai essayé la fonction NB.SI qui ne fonctionne que pour une condition.

si quelqu'un peut m'aider je lui en serait reconnaissant

A WITT
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
17 oct. 2007 à 22:55
Bonsoir,

Si sexe en D2:D10 et metier en E2:E10

total femme plombier: =SOMMEPROD(($D$2:$D$10="F")*1;($E$2:$E$10="plombier")*1)
total homme plombier: =SOMMEPROD(($D$2:$D$10="H")*1;($E$2:$E$10="plombier")*1)
etc

sommeprod fait le produit des matrices ligne à ligne et ensuite effectue la somme de tous les résultats.
Ex:
Pour la 1ere formule (pour F plombier) :
si tu as F sur la ligne => VRAI qui multiplié par 1 => 1
si tu as H sur la ligne => FAUX qui multiplié par 1 => 0
Pour le test sur plombier pareil, si les deux sont plombiers => VRAI *1 => 1
tu multiplies les valeurs ligne à ligne:
1 * 1 = 1
0 * 1 = 0
somme: 1


eric
0
shakyamuni22
20 mai 2008 à 14:36
Bonjour,
On va dire que je débute avec excel. Jai de plus, jamais utilisé ce forum.

Voici mon probleme:

J´ai un tableau-base de données sur une feuille de calcul.
Avec comme nom de colonne:
groupe de produit; marque; region; prix.

Je créée sur une autre feuille excel, une sorte de formulaire. L´utilisateur doit choisir un groupe de produit, une marque, une region. Et je souhaite qu´il puisse voir directement le prix correspondant. Pour qu´il entre ses données, j´ai créée des listes. Ma question c´est :
quelle formule rentrer au niveau de la case prix dans mon formulaire?

je pensais utiliserla fonction RECHERCHEV. Mais enfait cette formule renvoit à la colonne que l´on souhaite mais utilise qu´un seul critère de recherche (la première colonne du tableau).
Or moi j´ai 3 occurences.
Comment faire? Dois-je utiliser une macro?

Je sais pas du tout si c´est clair. Nhesitez pas a demander. Merci.
0