Fonction Execl RECHERCHEV
evelyno
Messages postés
1
Statut
Membre
-
ABOUMAWAN Messages postés 5 Statut Membre -
ABOUMAWAN Messages postés 5 Statut Membre -
Bonjour,
J'ai créé un tableau sur Excel assez spécifique. J'espère que je vais arriver à vous faire comprendre mon souci. c'est un tabeau qui contient des nombres en chiffres et en lettres allant de 1 à 2 millions. Pour les chiffres bien entendu j'ai dû utiliser précisément 31 colonnes de A à AE et aussi remplir toutes les cellules qu'une colonne puisse comporter c-à-d 65 536. A partir de la colonne AF j'ai converti et saisi en lettres tous ces nombres ( de 1 à 2 millions)grâce à la formule = ConvNumberLetter. Là aussi j'ai dû remplir près de 30 colonnes et 65 536 cellules par colonne. Le but de la manoeuvre est de faire renvoyer automatiquement en lettres la somme d'une facture après qu'une cellule donnée a été remplie par cette somme en chiffre sur une autre feuille qui est en fait la maquette de ma facture. A l'aide de la fonction RECHERCHEV j'aimerais pouvoir effectuer cet affichage automatique. Alors voici ma formule:
=RECHERCHEV(J42;TARIF;2). Ici la cellule J42 est celle que contient la somme en chiffres. le nom TARIF est celui de la grande plage qui contient tous les montants en chiffres et en lettres de 1 à 2 millions, c-à-d le tableau où Excel fera la recherche de la valeur cherchée et enfin 2 correspond au numéro de la colonne qui contient les montants en lettres. Le problème est que cette colonne 2 ne contient que les montants de 1 à 65 536 et cela est largement faible et insuffisant comme montant d'une facture. Alors j'ai plusieurs autres colonnes contenant la suite des ces montants. Peut-on alors insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV lorsque toutes les cellules d'une colonne ne suffit pas à contenir les données à chercher?
J'ai créé un tableau sur Excel assez spécifique. J'espère que je vais arriver à vous faire comprendre mon souci. c'est un tabeau qui contient des nombres en chiffres et en lettres allant de 1 à 2 millions. Pour les chiffres bien entendu j'ai dû utiliser précisément 31 colonnes de A à AE et aussi remplir toutes les cellules qu'une colonne puisse comporter c-à-d 65 536. A partir de la colonne AF j'ai converti et saisi en lettres tous ces nombres ( de 1 à 2 millions)grâce à la formule = ConvNumberLetter. Là aussi j'ai dû remplir près de 30 colonnes et 65 536 cellules par colonne. Le but de la manoeuvre est de faire renvoyer automatiquement en lettres la somme d'une facture après qu'une cellule donnée a été remplie par cette somme en chiffre sur une autre feuille qui est en fait la maquette de ma facture. A l'aide de la fonction RECHERCHEV j'aimerais pouvoir effectuer cet affichage automatique. Alors voici ma formule:
=RECHERCHEV(J42;TARIF;2). Ici la cellule J42 est celle que contient la somme en chiffres. le nom TARIF est celui de la grande plage qui contient tous les montants en chiffres et en lettres de 1 à 2 millions, c-à-d le tableau où Excel fera la recherche de la valeur cherchée et enfin 2 correspond au numéro de la colonne qui contient les montants en lettres. Le problème est que cette colonne 2 ne contient que les montants de 1 à 65 536 et cela est largement faible et insuffisant comme montant d'une facture. Alors j'ai plusieurs autres colonnes contenant la suite des ces montants. Peut-on alors insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV lorsque toutes les cellules d'une colonne ne suffit pas à contenir les données à chercher?
A voir également:
- Fonction Execl RECHERCHEV
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
12 réponses
bonjour,
Le plus simple pour répondre à la question précisément posée :
Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
Par contre, pouvez vous expliquer pourquoi vous n'insérer pas directement la fonction ConvNumberLetter directement dans votre feuille facture.....?
Le plus simple pour répondre à la question précisément posée :
Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
Par contre, pouvez vous expliquer pourquoi vous n'insérer pas directement la fonction ConvNumberLetter directement dans votre feuille facture.....?
"Cependant, est ce possible quand même d'insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV ?"
La réponse est claire, nette et sans bavure : NON !
La réponse est claire, nette et sans bavure : NON !
Comment faire l'addition des fonctions RECHERCHEV ?? voici un exemple: Les lettres A B C D en haut sont les colonnes et les chiffres 1 2 3 4 à gauche sont les lignes.
A B C D
1 REFERENCE PRODUITS1 PRODUITS2 P U 2 202 tomates biscuits 652,36
3 203 bananes lait 263,33
4 204 pommes sucre 320,25
ce que je veux c'est une formule du type: =RECHERCHEV(une cellule quelconque; le tableau ci-dessus; la colonne B et aussi la colonne C). Car je veux que la recherche s'effectue et sur la colonne B et sur la colonne C. puisque les deux colonnes contiennent les produits dont j'ai besoin. Bien sûr vous allez me dire pourquoi pas mettre les produits de C dans B et faire la recherche sur la seule colonne B. La réponse est: imaginez que toutes les cellules de la colonne B soient saisies par des produits. je veux dire toutes les 65 536 cellules. Vous seriez bien obligés de créer une nouvelle colonne n'est ce pas ? mais cette nouvelle colonne que vous allez créer, il faut bien que la recherche se fasse là dessus aussi. ATTENTION le résultat de la recherche s'affichera sur une même cellule.
A B C D
1 REFERENCE PRODUITS1 PRODUITS2 P U 2 202 tomates biscuits 652,36
3 203 bananes lait 263,33
4 204 pommes sucre 320,25
ce que je veux c'est une formule du type: =RECHERCHEV(une cellule quelconque; le tableau ci-dessus; la colonne B et aussi la colonne C). Car je veux que la recherche s'effectue et sur la colonne B et sur la colonne C. puisque les deux colonnes contiennent les produits dont j'ai besoin. Bien sûr vous allez me dire pourquoi pas mettre les produits de C dans B et faire la recherche sur la seule colonne B. La réponse est: imaginez que toutes les cellules de la colonne B soient saisies par des produits. je veux dire toutes les 65 536 cellules. Vous seriez bien obligés de créer une nouvelle colonne n'est ce pas ? mais cette nouvelle colonne que vous allez créer, il faut bien que la recherche se fasse là dessus aussi. ATTENTION le résultat de la recherche s'affichera sur une même cellule.
Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
Oui, evelyno ; il est même indispensable que tu envoies ton fichier, parce que dans ton exemple la même référence et le même prix unitaire pour 2 produits différents, ça ne colle pas !
bonjour,
bien faire les manip suivantes sinon le fichier est inaccessible.. :
(Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
bien faire les manip suivantes sinon le fichier est inaccessible.. :
(Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
Raymond, je viens d'envoyer un fichier sur le système par le moyen prévu à cet effet. Il s'appelle "MON EXPLE". si tu peux le consulter pour comprendre mon souci même si j'avoue que tu l'avais déjà bien reconstitué hier. Ci-dessous le lien: http://www.cijoint.fr/cjlink.php?file=cj201007/cijwaWHMxW.xlsx
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En attendant d'avoir tes précisions, voici 2 exemples de ce qu'on peut faire :
https://www.cjoint.com/?hppqKuInyE
https://www.cjoint.com/?hppqKuInyE
evelyno, je te demanderai à l'avenir de ne plus utiliser le bouton "Ajouter un commentaire" pour répondre, mais "J'ai une réponse".
Ton exemple de tableau est inexploitable, car une même référence sert à 2 produits différents ! c'est comme si 2 personnes avaient le même N° de Sécurité Sociale !
Ton tableau doit comporter 6 colonnes : ref / prod / PU / ref / prod / PU
(je te l'avais déjà signalé le 15 jui 2010 à 14:58) ou 9, ou 12 ...
Mais pourquoi te casses-tu la tête avec tes 65 536 lignes, alors que tu es passé sur excel 2007 qui en accepte 1 048 576 ?
Ton exemple de tableau est inexploitable, car une même référence sert à 2 produits différents ! c'est comme si 2 personnes avaient le même N° de Sécurité Sociale !
Ton tableau doit comporter 6 colonnes : ref / prod / PU / ref / prod / PU
(je te l'avais déjà signalé le 15 jui 2010 à 14:58) ou 9, ou 12 ...
Mais pourquoi te casses-tu la tête avec tes 65 536 lignes, alors que tu es passé sur excel 2007 qui en accepte 1 048 576 ?
Raymond
Je dois reconnaître que mon problème est un peu compliqué et bizarre en même temps. Je te donne raison sur le fait qu'une référence ne peut pas être attribuée à deux produits différents. Disons que c'était le seul moyen que j'avais pour te faire comprendre mon souci. On peut alors dire qu'il était plus compréhensible sans le tableau. je vais alors m'expliquer à nouveau plus clairement. Dis moi s'il te plait si tu comprends vraiment ce que je veux exprimer. Imagine que tu gères un stock de plusieurs références d'articles. (je travaille dans une boîte qui gère plus d'un milliards de références différentes de pièces de rechange). chaque réf évidemment correspond à un article. on est d'accord que tu ne peux pas aligner dans une colonne nommée " désignation articles" 1 milliard d'articles, le nombre de lignes d'une seule colonne ne te le permettant pas. tu es obligé de décaler les autres articles dans une autre colonne ainsi de suite. le problème c'est que je veux faire renvoyer sur une seule cellule donnée (pas deux ou plus) le nom d'un article après avoir saisi quelque part sa référence. ton addition des deux fonctions RECHERCHEV fait afficher les articles des deux colonnes faisant partie de ta fonction, ce qui ne correspond pas à ce que je veux. je suis d'accord pour l'analogie avec le numéro de sécurité sociale qui ne peut appartenir qu'à un seul individu. Mais dans ce genre de cas, comment gérerais-tu cette opération.
Je dois reconnaître que mon problème est un peu compliqué et bizarre en même temps. Je te donne raison sur le fait qu'une référence ne peut pas être attribuée à deux produits différents. Disons que c'était le seul moyen que j'avais pour te faire comprendre mon souci. On peut alors dire qu'il était plus compréhensible sans le tableau. je vais alors m'expliquer à nouveau plus clairement. Dis moi s'il te plait si tu comprends vraiment ce que je veux exprimer. Imagine que tu gères un stock de plusieurs références d'articles. (je travaille dans une boîte qui gère plus d'un milliards de références différentes de pièces de rechange). chaque réf évidemment correspond à un article. on est d'accord que tu ne peux pas aligner dans une colonne nommée " désignation articles" 1 milliard d'articles, le nombre de lignes d'une seule colonne ne te le permettant pas. tu es obligé de décaler les autres articles dans une autre colonne ainsi de suite. le problème c'est que je veux faire renvoyer sur une seule cellule donnée (pas deux ou plus) le nom d'un article après avoir saisi quelque part sa référence. ton addition des deux fonctions RECHERCHEV fait afficher les articles des deux colonnes faisant partie de ta fonction, ce qui ne correspond pas à ce que je veux. je suis d'accord pour l'analogie avec le numéro de sécurité sociale qui ne peut appartenir qu'à un seul individu. Mais dans ce genre de cas, comment gérerais-tu cette opération.
bonjour,
il n'y a pas de solutions 'toute faite' pour renvoyer le numéro de ligne ou de colonne d'une cellule dans une plage à deux dimensions (plusieurs lignes et plusieurs colonnes). Cela est relativement simple à faire en VBA via une fonction personnalisée de ce type :
Fonction de principe encore à compléter : ne gère pas en l'état d'erreurs ou autres cas pour l'instant non identifiés...
Une fois ce code disposé dans un module VBA, l'utiliser comme une fonction excel 'classique' :
=LIGNOUCOL(A1;B1:C100;0) ou
LIGNOUCOL(A1;B1:C100)
recherche la valeur de A1 dans la plage B1:C100 et renvoi le numéro de colonne de la cellule trouvée.
=LIGNOUCOL(A1;B1:C100;1)
recherche la valeur de A1 dans la plage B1:B100 et renvoi le numéro de ligne de la cellule trouvée.
Attention, ne traite pas les valeurs multiples...
Si vous n'avez besoin de rien, demandez-moi.
il n'y a pas de solutions 'toute faite' pour renvoyer le numéro de ligne ou de colonne d'une cellule dans une plage à deux dimensions (plusieurs lignes et plusieurs colonnes). Cela est relativement simple à faire en VBA via une fonction personnalisée de ce type :
Public Function lignoucol(cellule As Range, selection As Range, Optional choix As Byte = 0)
'renvoi la ligne ou la colonne d'une référence dans une plage (sélection)
'correspondant à la valeur de la cellule de recherche
'1°argument = cellule critère de recherche
'2°argument = plage de recherche
'3°argument : (facultatif) si 0 ou rien la fonction renverra la colonne, si valeur >= 1 renvoi la ligne
For Each Cell In selection
If Cell.Value = cellule.Value Then
If choix = 0 Then
lignoucol = Cell.Column
Else: lignoucol = Cell.Row
End If
End If
Next
End Function
Fonction de principe encore à compléter : ne gère pas en l'état d'erreurs ou autres cas pour l'instant non identifiés...
Une fois ce code disposé dans un module VBA, l'utiliser comme une fonction excel 'classique' :
=LIGNOUCOL(A1;B1:C100;0) ou
LIGNOUCOL(A1;B1:C100)
recherche la valeur de A1 dans la plage B1:C100 et renvoi le numéro de colonne de la cellule trouvée.
=LIGNOUCOL(A1;B1:C100;1)
recherche la valeur de A1 dans la plage B1:B100 et renvoi le numéro de ligne de la cellule trouvée.
Attention, ne traite pas les valeurs multiples...
Si vous n'avez besoin de rien, demandez-moi.
Désolé Raymond, j'ai encore utilisé le bouton "Ajouter un commentaire" tout à l'heure. je fais copier coller de mon intervention que je viens de valider il y a deux minutes: la voici:
Raymond
Je dois reconnaître que mon problème est un peu compliqué et bizarre en même temps. Je te donne raison sur le fait qu'une référence ne peut pas être attribuée à deux produits différents. Disons que c'était le seul moyen que j'avais pour te faire comprendre mon souci. On peut alors dire qu'il était plus compréhensible sans le tableau. je vais alors m'expliquer à nouveau plus clairement. Dis moi s'il te plait si tu comprends vraiment ce que je veux exprimer. Imagine que tu gères un stock de plusieurs références d'articles. (je travaille dans une boîte qui gère plus d'un milliards de références différentes de pièces de rechange). chaque réf évidemment correspond à un article. on est d'accord que tu ne peux pas aligner dans une colonne nommée " désignation articles" 1 milliard d'articles, le nombre de lignes d'une seule colonne ne te le permettant pas. tu es obligé de décaler les autres articles dans une autre colonne ainsi de suite. le problème c'est que je veux faire renvoyer sur une seule cellule donnée (pas deux ou plus) le nom d'un article après avoir saisi quelque part sa référence. ton addition des deux fonctions RECHERCHEV fait afficher les articles des deux colonnes faisant partie de ta fonction, ce qui ne correspond pas à ce que je veux. je suis d'accord pour l'analogie avec le numéro de sécurité sociale qui ne peut appartenir qu'à un seul individu. Mais dans ce genre de cas, comment gérerais-tu cette opération.
_______________________________________________________
Raymond
Je dois reconnaître que mon problème est un peu compliqué et bizarre en même temps. Je te donne raison sur le fait qu'une référence ne peut pas être attribuée à deux produits différents. Disons que c'était le seul moyen que j'avais pour te faire comprendre mon souci. On peut alors dire qu'il était plus compréhensible sans le tableau. je vais alors m'expliquer à nouveau plus clairement. Dis moi s'il te plait si tu comprends vraiment ce que je veux exprimer. Imagine que tu gères un stock de plusieurs références d'articles. (je travaille dans une boîte qui gère plus d'un milliards de références différentes de pièces de rechange). chaque réf évidemment correspond à un article. on est d'accord que tu ne peux pas aligner dans une colonne nommée " désignation articles" 1 milliard d'articles, le nombre de lignes d'une seule colonne ne te le permettant pas. tu es obligé de décaler les autres articles dans une autre colonne ainsi de suite. le problème c'est que je veux faire renvoyer sur une seule cellule donnée (pas deux ou plus) le nom d'un article après avoir saisi quelque part sa référence. ton addition des deux fonctions RECHERCHEV fait afficher les articles des deux colonnes faisant partie de ta fonction, ce qui ne correspond pas à ce que je veux. je suis d'accord pour l'analogie avec le numéro de sécurité sociale qui ne peut appartenir qu'à un seul individu. Mais dans ce genre de cas, comment gérerais-tu cette opération.
_______________________________________________________
C'est bien , evelyno, c'est bien !
J'aimerais te dire tout d'abord que pour gérer un fichier d'un milliard d'articles, un simple logiciel de bureautique n'est pas approprié ; il te faudrait un progiciel.
Si tu veux rester dans une configuration "amateur", donne la préférence à Access par rapport à Excel : les données étant enregistrées sur le disque au fur et à mesure de leur saisie, il n'y a plus de limitation de nombre ; seule la taille de ta mémoire pourrait devenir un obstacle.
Toutefois, je m'en vais réfléchir à un autre procédé sur Excel. Mais confirme-moi que tu n'as bien que 3 données par article : la référence, le nom et le prix unitaire. Il ne faudrait pas qu'après avoir reçu ma proposition (si je parviens à un résultat) tu me dises "Oui, mais finalement je dois ajouter la marque, le modèle et le taux de TVA applicable" !
J'aimerais te dire tout d'abord que pour gérer un fichier d'un milliard d'articles, un simple logiciel de bureautique n'est pas approprié ; il te faudrait un progiciel.
Si tu veux rester dans une configuration "amateur", donne la préférence à Access par rapport à Excel : les données étant enregistrées sur le disque au fur et à mesure de leur saisie, il n'y a plus de limitation de nombre ; seule la taille de ta mémoire pourrait devenir un obstacle.
Toutefois, je m'en vais réfléchir à un autre procédé sur Excel. Mais confirme-moi que tu n'as bien que 3 données par article : la référence, le nom et le prix unitaire. Il ne faudrait pas qu'après avoir reçu ma proposition (si je parviens à un résultat) tu me dises "Oui, mais finalement je dois ajouter la marque, le modèle et le taux de TVA applicable" !
Mon cher raymond
Je suis content que tu aies compris mon problème. Tu vois, il n'était pas si bête. Il va d'ailleurs te permettre de réfléchir(rires). T'en fais pas pour le reste. je n'ajouterais plus autre chose une fois j'aurais éventuellement obtenu satisfaction à ma préoccupation. Je te laisse le WK pour me répondre. Prends ton temps. Il n'y a rien qui presse. Bien de choses.
Ciao
Je suis content que tu aies compris mon problème. Tu vois, il n'était pas si bête. Il va d'ailleurs te permettre de réfléchir(rires). T'en fais pas pour le reste. je n'ajouterais plus autre chose une fois j'aurais éventuellement obtenu satisfaction à ma préoccupation. Je te laisse le WK pour me répondre. Prends ton temps. Il n'y a rien qui presse. Bien de choses.
Ciao
Désolé ! J'ai essayé avec ADRESSE, EQUIV, RECHERCHE, INDEX : rien à faire.
Il va falloir compter sur les praticiens de VBA pour te fabriquer une macro ...
Salut.
Il va falloir compter sur les praticiens de VBA pour te fabriquer une macro ...
Salut.
re,
et celle-ci ne vous convient pas .. ? :-)
https://forums.commentcamarche.net/forum/affich-18488043-fonction-execl-recherchev#20
et celle-ci ne vous convient pas .. ? :-)
https://forums.commentcamarche.net/forum/affich-18488043-fonction-execl-recherchev#20
Je vous remercie de votre réponse rapide qui m'a tellement soulagé. Evidemment la solution est tout simplement insérer la fonction ConvNumberLetter directement dans ma feuille facture ainsi que vous me le conseillez. Je me demande comment j'y ai pas pensé. je dois être totalement fou pour n'y avoir pas pensé. votre réponse est effective et je ne regrette pas une seule seconde de m'être inscrit sur votre page et d'avoir posté mon problème. Une fois de plus merci. Cependant, est ce possible quand même d'insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV ? pourriez-vous me répondre sans mon fichier ? ou alors il vous faut toujours mon fichier pour comprendre ma question ?
Cependant la réponse passe par "l'autre méthode" de recherche en base de donnée qui est le 'couple' INDEX(EQUIV et qui permet beaucoup plus de souplesse dans la définitions des plages et colonnes de recherche
Pour des illustrations et des explications :
Il n'est effectivement pas possible de répondre précisément
http://www.top-assistante.com/bureau/excel/recherchev6.php
Quand au "pb" evoqué : je ne comprends pas, la fonction n'écrit pas 'virgule' s'il n'y a pas de décimale... donc pas de réponse comma ca...