EXCEL : quelle formule utiliser?

Fermé
wipatel Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009 - 24 févr. 2009 à 00:32
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 24 févr. 2009 à 16:57
Bonjour,

Je suis en train de faire un fichier EXCEL (en rélité je travaille sous open office 3.0)
et je souhaite faire la chose suivante :

Je dispose de deux pages (Feuille1 et Feuille2)

J'ai mis sur la feuille1 un barre déroulante qui inscrit mon choix en case B10.

En feuille2 je dispose de données qui me servent à la feuille1.
Sur cette feuille2, j'ai une colonne (A) qui contient 133 mots différents
et en face, (sur la colonne B), des correspondances a ces mots.

Ce que je veux faire c'est :
lors que je choisi un mot dans ma barre déroulante (celui-ci s'ecrit en B10)
je voudrais que la cellule C10 soit la coRrespondance de ce mot.

Exemple.

ColonneA ColonneB
1 Pierre gentil
2 Paul timide
3 Jacques c**
4 Roger Fillette
5 Robert cool

quand B10=Roger, je voudrai que C10=Fillette
quand B10=Pierre, je voudrai que C10=gentil .....

Le problème est que ma colonne A contient 133 mots et que la fonction "SI", ne permet le cumul que de 30 niveaux

Si quelqu'un peut m'aider ca serait sympa
si il y a besoin, je peux vous donner mon mail ou msn

Salut
A voir également:

15 réponses

Mabelle60 Messages postés 468 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
24 févr. 2009 à 15:16
Salut
si tu as choisi de mettre
=recherchev(Feuil1!A1;Feuil2!A1:B133;2)
As tu mis des $ de part et d'autre des lettres de Feuil2!A1:B133?
Si tu ne la pas fait, ça pourrait expliquer pourquoi tu ne trouve pas les valeurs attendues en retour...
Car lorsque tu tires ta formule vers le bas, tu auras
Feuil2!A1:B133 en ligne 1
Feuil2!A2:B134 en ligne 2
Feuil2!A3:B135 en ligne 5 et ainsi de suite jusqu'a avoir
Feuil2!A133:B266 en ligne 133
Ce qui expliquera pourquoi tes données sont eronnées
1
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 17 256
24 févr. 2009 à 02:36
Il faut utiliser la fonction RECHERCHEV()
0
wipatel Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 12:12
merci
J'ai bien trouver cette formule mais je ne suis pas parvenu à m'en servir

Peux tu m'expliquer ce que je dois mettre dans les différents éléments à renseigner?

Merci
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
24 févr. 2009 à 12:23
Bonjour,
En C1 (par exemple) tu tape le nom qui correspond à un mot de la colonne A
et dans D1 la formule
=RECHERCHEV(C1;A1:B133;2)

A+
EDIT: Tu pourrais avantageusement te servir de l'assistant "Coller une fonction" qui te guide et donne des explications.
0

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

Posez votre question
Mabelle60 Messages postés 468 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 21 juin 2017 130
24 févr. 2009 à 12:28
Salut
Feuille 2, sélectionne ton champ total (A1 à B133 par exemple) et nomme le maliste
puis, comme déja préconnisé auparavent, tape en face de ta valeur à tester en feuille 1 et à tire jusqu'en bas
=SI(ESTERREUR(RECHERCHEV(A1;maliste;2));"";RECHERCHEV(A1;maliste;2))

L'avantage : si il ne trouve pas la valeur, tu auras un vide au lieu d'un #N/A
0
wipatel Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 13:00
MERCI pour vos conseil
Je viens de la faire et ça marche partiellement....

La formule est bonne mais :

dans ma colonne A j'ai des termes sous forme :
1 : pierre
2 : Paul
3 : Jacques

Pour faire des test j'ai mis dans la colonne B en face de "1 : Pierre" -----> 1
en face de 2 : Paul -----> 2
en face de 3 : Jacques ----> 3
etc
Lorsque dans ma case B10 je rentre "1 : Pierre" j'ai 1 qui s'affiche dans la case C10 (par exemple)
Jusque la tout est bon
LE problème se pose quand j'arrive dans le 30.
Au lieu d'avoir 30 : Denis qui me donnerai 30 en C10
J'ai 3 qui me renvoi à ce que je devrai avoir pour Jacques

C'est comme si il lisait seulement le premier caractère de la case B10

Je ne comprend pas
MErci
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
24 févr. 2009 à 13:07
C'est que tu met pas la même chose, fait un copier/coller de la cellule avec 30 et test... Ca devrait être juste.
A+
0
wipatel Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 13:23
Non pas possible que ce ne soit pas la meme chose car ma cellule B10 est le resultat d'une selection qur je fais avec une liste déroulante et cette liste est créée depuis ma colonne A de la page 2

si tu veux ma formule c'est
=RECHERCHEV(B10;Feuille2.A2:B133;2)

et je veux que en C10 (exemple), j'ai le résultat de ma selection dans la case B10.
C'est à dire si B10=Feuille2.A56, je veux avoir Feuille2.B56 en C10

???
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
24 févr. 2009 à 13:24
bonjour à tous

ajoute un 4eme paramètre à ton rechercheV

=RecehrcheV(Marecherche; MaPlage;MaColonneRetour; FAUX)

3
4
.
.
30

Le 4eme parametre FAUX impose à rechercheV à trouver la valeur Réelle si On met VRAI ou comme dans ton cas, on l'omet, il recupère la valeur proche mais s'arrete à la valeur immediatement superieur
4 est (en aplabetique) >3, >30, > 300 puisque 4 est > 3. donc il s'arrete à 4 et renvoie la valeur immediatement inferieure autrement dit 3

Aide sur Formule Excel

RECHERCHEV(valeur_cherchée;table_matrice;no_index_col;valeur_proche)

valeur_cherchée   est la valeur à trouver dans la première colonne de la matrice. L'argument valeur_cherchée peut être une valeur, une référence ou une chaîne de texte.

table_matrice   est la table de données dans laquelle est exécutée la recherche de la valeur. Utilisez une référence à une plage ou un nom de plage, par exemple Base de données ou Liste. 

Si l'argument valeur_proche est VRAI, les valeurs de la première colonne de l'argument table_matrice doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI. Sinon, la fonction RECHERCHEV peut donner une valeur incorrecte. Si l'argument valeur_proche est FAUX, les éléments de la table ne doivent pas nécessairement être classés. 

Vous pouvez placer les valeurs en ordre croissant en choisissant, dans le menu Données, la commande Copies assemblées et en sélectionnant l'option Croissant. 

Les valeurs de la première colonne de l'argument table_matrice peuvent être du texte, des nombres ou des valeurs logiques. 

La fonction ne fait pas de distinction entre les majuscules et les minuscules. 

no_index_col   est le numéro de la colonne de l'argument table_matrice dont la valeur correspondante doit être renvoyée. Si l'argument no_index_col est égal à 1, la fonction renvoie la valeur dans la première colonne de l'argument table_matrice ; si l'argument no_index_col est égal à 2, la valeur est renvoyée dans la deuxième colonne de l'argument table_matrice, et ainsi de suite. Si l'argument no_index_col est inférieur à 1, la fonction RECHERCHEV renvoie la valeur d'erreur #VALEUR! et si l'argument no_index_col est supérieur au nombre de colonnes de l'argument table_matrice, la fonction RECHERCHEV renvoie la valeur d'erreur #REF!.

valeur_proche   représente une valeur logique indiquant si vous souhaitez que la fonction RECHERCHEV recherche une valeur exacte ou voisine de celle que vous avez spécifiée. Si cet argument est VRAI ou omis, une donnée proche est renvoyée. En d'autres termes, si aucune valeur exacte n'est trouvée, la valeur immédiatement inférieure à valeur_cherchée est renvoyée. Si valeur_proche est FAUX, la fonction RECHERCHEV renvoie exactement la valeur recherchée. Si aucune valeur ne correspond, la valeur d'erreur #N/A est renvoyée.
0
wipatel Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 13:44
Non ca ne marche pas.
la cellule reste vide sauf pour le n°6. Je ne sais pas porquoi.

N'y a t til pas un moyen de lui dire qu'il ne s'arrete pas au premier caractère qu'il rencontre

Dans A1 si j'ai : 1 : Pierre
et dans A10 si j'ai : 10 : Paul
, il devrait faire la distinction entre ses deux case car outre le 1 tout le reste est différent

Est ce qu'il y a un moyen pour qu'il prenne en considération tous les caractères de la cellules obligatoirement?
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
24 févr. 2009 à 13:52
re:

regarde ce fichier
https://www.cjoint.com/?cAn1bfDhd5
0
wipatel Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 14:33
Merci

c'est super ca marche

J'ai regardé ton fichier joint et mon erreur venait des "()" apres FAUX

j'avais mis
=RECHERCHEV(B10;Feuille2.A2:B133;2.FAUX)
au lieu de :
=RECHERCHEV(B10;Feuille2.A2:B133;2.FAUX())

Je n'ai pas bien compris la différence mais comme ca marche et c'est le principal

MErci beaucoup à tous
pour ma part ce post est resolu
0
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 17 256
24 févr. 2009 à 15:05
Bonjour, wipatel,

Dans ton post 5 tu écris " Au lieu d'avoir 30 : Denis qui me donnerai 30 en C10 J'ai 3 qui me renvoi à ce que je devrai avoir pour Jacques. C'est comme si il lisait seulement le premier caractère de la case B10 "

Je suis très surpris, car j'ai reproduit ton fichier, utilisé ta formule et tout marche très bien :
https://www.cjoint.com/?cApaVpmMHE

J'en ai profité pour donner le nom "mesnoms" à la plage A1:A133 de Feuil2 (où la plage A1:B133 s'appelle "maliste"). Ceci m'a permis de te faire ta liste déroulante en B10.

Remarque accessoire :
Pourquoi saisir "1 : pierre" en A1 et "gentil" en B1
au lieu de "1" en A1, "pierre" en B2 et "gentil" en C1 ?

Tu devrais nous envoyer ton fichier, au lieu de t'évertuer à essayer d'expliquer ce qui s'y passe ; fais comme wilfried_42, utilise https://www.cjoint.com/
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
24 févr. 2009 à 15:50
re: à tous

je ne vois pas reellementce que tu as fait : Seuls dans mes post il y a le 4eme parametre Faux tous les autres post je vois : =RECHERCHEV(B10;Feuille2.A2:B133;2) sans le 4eme parametre

comme dans l'aide que j'ai fourni, si le 4eme parametre est omis, il concidere que le 4eme est Vrai
dans ce cas, il balaye la plage , s'il trouve le bon code il le met, s'il ne le trouve pas il met le precedent

en alphabetique, 34 est inferieur à 4 puisqque 3 est < à 4, ce qui fait que trouvant 4 alors que tu cherches 34, il s'arrete et te donne 3

or, je n'ai jamais donné : =RECHERCHEV(B10;Feuille2.A2:B133;2.FAUX()) ni : =RECHERCHEV(B10;Feuille2.A2:B133;2.FAUX)
il n'y a pas de poin qui separe les parametres, mais un point virgule
j'ai donné : =RECHERCHEV($B10;Feuille2.$A$2:$B$133;2;FAUX)

maintenant ce sont des formules excel, et pas open calc (tien je les croyais compatible selon la pub oOo)

0
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 17 256
24 févr. 2009 à 16:57
Les posts 13 et 14 insistent avec raison sur la nécessité de mettre des $ si tu n'as pas choisi l'option de nommer tes plages.

D'autre part toutes les informations données sont valables sur Excel de Microsoft Office ; à toi de faire les éventuelles adaptations sur Open !
0