IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Recherchev avec plusieurs résultats possibles.


Sujet :

Excel

  1. #1
    Membre habitué Avatar de solorac
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 140
    Points
    140
    Par défaut Recherchev avec plusieurs résultats possibles.
    Bonjour la communauté,

    Je vous expose mon pb, j'ai une liste de produit qui ont plusieurs résultats possible. Lorsque je fais une recherchev il me donne tjs le premier résultat.

    Ex :
    Col A Col B
    D1210 : Disque 40
    D1210 : Disque 50
    D1210 : Disque 60

    Comment faire pour afficher les résultats Disque 50 et disque 60 ?

    Car si je fais =recherchev(f125;$a$1:$b$541;2;0) pour la réf D1210 il me donne a chaque fois le résultat : Disque 40.

    Merci et à bientôt

  2. #2
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Salut
    si ta référence recoupe plusieurs réponses celles ci doivent être dans la même "fiche"
    autrement dit ta référence dans une colonne les renvois dans les colonnes suivantes
    a111a00 disque_10 disque_20 disque_50 disque_60
    le retour se fera par
    rechercheV (critere ;tableau; 2;faux) rechercheV (critere ;tableau; 3;faux) rechercheV (critere ;tableau; 4;faux) rechercheV (critere ;tableau; 5;faux)
    la réponse retournera 0 si le colonne est vide
    à toi de formater les cellules réponse pour la présentation
    mais une une mini base de donnée sous excel doit être ordonnée ligne par ligne chaque ligne étant une fiche chaque cellule un champ ; les données doivent occupées la colonne champs qui leur est attribuée
    ce qui peut être par ex un tableau de bougie d'allumage fabricant en horizontal
    marque de voiture en verticale N° de blister en donnée pour une même référence plusieurs possibilités
    Daranc

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Function rmult(valcherch As Variant, x As Range, colonne As Long) As Variant
    Dim u As Variant
    Dim nb As Long
    Dim boucle As Long
    For boucle = 1 To x.Rows.Count
    If x(boucle, 1) = valcherch Then
    u = u & "|" & x(boucle, colonne)
    nb = nb + 1
    End If
    Next boucle
    'u = nb & u
    rmult = u
    End Function
    Elle est pas belle la vie ?

  4. #4
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut pas le logique la
    Chapeau
    Daranc
    en regardant comment s'articuler la logique de la construction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function RMult(valcherch As Variant, zone As Long, x As Range, colonne As Long) As Variant
    'Fonction de Random
    Dim u As Variant
    'Dim nb As Long      je n'ai pas vu l'utilité de nb 
    Dim boucle As Long
    For boucle = 1 To x.Rows.Count
    If x(boucle, zone) = valcherch Then ' rajout de zone pour definir la colonne de test
    u = u & x(boucle, colonne) & " / " ' là j'ai interverti (question de gout perso)
    'nb = nb + 1  ' ? 
    End If
    Next boucle
    'u = nb & u
    RMult = u
    End Function
    Personellement j'ai récupéré un outils qui va bien me servir
    Merci Random

  5. #5
    Membre habitué Avatar de solorac
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 140
    Points
    140
    Par défaut
    Merci Messieurs, vous êtes vraiment bons
    Bonne journée

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    j'ai évité / et \ ainsi que ; et , parcequ'il s'agit de caractères réservés | est disponible
    par contre la position est meilleure en fait j'avais prévu de renvoyer
    nb éléments|elément 1.... dans une matrice

    et j'ai changé d'avis par souci de didactisme

    mais dans l'absolu cela aurait été meilleur car on pouvait ainsi manipuler
    le résulta avec toutes les formules acceptant une matrice en paramètre

    le premier | est donc resté
    Elle est pas belle la vie ?

  7. #7
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par random Voir le message

    mais dans l'absolu cela aurait été meilleur car on pouvait ainsi manipuler
    le résulta avec toutes les formules acceptant une matrice en paramètre
    Les matrices en plus . il faut faire un XLA
    Cordialement
    Daranc

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    voici ce qui était prévu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Function rmult(valcherch As Variant, x As Range, colonne As Long) As Variant
    Dim u As Variant
    Dim nb As Long
    Dim boucle As Long
    For boucle = 1 To x.Rows.Count
    If x(boucle, 1) = valcherch Then
    u = u & "|" & x(boucle, colonne)
    nb = nb + 1
    End If
    Next boucle
    u = nb & u
    rmult = Split(u, "|")
    End Function
    ce qui permet en faisant =index(rmult(...);1;1) d'obtenir le nombre d'occurences
    puis index(rmult(...);1;2) pour obtenir la première
    Elle est pas belle la vie ?

  9. #9
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Salut Random
    J'ai un retour d'erreur #REF! lorsque la fonction est mise à index(rmult();2;1) apparemment l'instruction Split n'accepte le paramètre 2 que dans Access par contre j'ai bien le nombre d'occurrences de la valeur pointée (équivalent à nb sur le première colonne)
    Daranc

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    index(rmult(...);1;2) pardon
    Elle est pas belle la vie ?

  11. #11
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    seule une autorité supérieur est apte à pardonné
    moi je n'ai rien à pardonner juste à remercier
    bon trêves de philosophie la deuxième donnée
    index(rmult(...);1;2) me retourne juste la première
    valeur trouvé (comme un RECHERCHEV classique)
    Daranc
    PS si je suis longuet sur la réponse c'est que je suis légèrement Ultra-sur-hyper-booquer (mais léger hein?)

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    index(rmult(...);1;1) retourne le nombre d'occurences
    index(rmult(...);1;n) retourne l'occurence n-1

    avec un index(rmult();1;colonne()-x) et un recopie à droite ou
    un
    index(rmult();1;ligne()-y) et recopie vers le bas

    on dévoile tout
    Elle est pas belle la vie ?

  13. #13
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Désolé je suis un peu lourd mais je ne comprends pas la finalité
    je te joins un fichier de mes essais avec les résultats obtenus
    est -il possible qu'il me manque une bibliothèque?
    Daranc

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    comme ca
    Fichiers attachés Fichiers attachés
    Elle est pas belle la vie ?

  15. #15
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Ok j'ai vu le principe
    les résultats sont en colonne ; la fonction n'a plus besoin du " | " en séparateur de liste (je m'acharnais sur " 4 | 8 | 7 |" comme résultat)
    mais dans ce cas la fonction est plus pointue à mettre en œuvre
    Daranc

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    exact mais on est récompensé en y accédant de façon parfaitement précise
    de plus j'ai renvoyé le résulta en ligne mais j'aurais pu le renvoyer en colonne ou sur des feuilles différentes

    l'autre version de la fonction permttant d'obtenir une seule chaîne
    reste à englober l'ensemble dans une fonction unique
    avec ajout d'un paramètre optional

    visu:=1

    si visu=1 ou ismissing on renvoie la chaine
    si visu=2 on renvoie le nombre d'items
    si visu=3 on renvoie le nombre d'items plus le split
    si visu=4 on renvoie le split seul

    il serait sage aussi de transformer les items numériques du split en val(item)
    et de renvoyer une valeur propre
    Elle est pas belle la vie ?

  17. #17
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par random Voir le message
    exact mais on est récompensé en y accédant de façon parfaitement précise
    de plus j'ai renvoyé le résulta en ligne mais j'aurais pu le renvoyer en colonne ou sur des feuilles différentes

    l'autre version de la fonction permttant d'obtenir une seule chaîne
    reste à englober l'ensemble dans une fonction unique
    avec ajout d'un paramètre optional

    visu:=1

    si visu=1 ou ismissing on renvoie la chaine
    si visu=2 on renvoie le nombre d'items
    si visu=3 on renvoie le nombre d'items plus le split
    si visu=4 on renvoie le split seul

    il serait sage aussi de transformer les items numériques du split en val(item)
    et de renvoyer une valeur propre
    j'ai abandonné l'hébreu en première année ,première heure
    là je lâche
    de ce que j'en ai compris: Y aurait-il un développement futur d'un complément un beau ?
    Cordialement
    Daranc

  18. #18
    Membre habitué Avatar de solorac
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 140
    Points
    140
    Par défaut
    Bonjour la Communauté,

    Je reviens sur cette question que j'avais posé en septembre dernier.
    Les réponses proposées sont excellentes si l'on sait utiliser les macros.
    Seulement si l'on y comprend rien comme moi, on est dans la mouisse.

    Donc j'aimerai savoir si il y aurait un autre moyen en utilisant la fonction recherchev, d'afficher l'ensemble des résultats et non seulement le premier.

    Je vous remercie

    Je vous joins un fichier explicatif
    Fichiers attachés Fichiers attachés

  19. #19
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Non, recherchev n'est pas paramétré pour renvoyer une matrice.
    En même temps, random t'a concocté une fonction toute faite où, il n'y a à mon sens rien à trifouiller dans le VBA.

    En mon temps, j'avais posté une fonction ni plus ni moins bonne que celle de l'excellent random :
    http://www.developpez.net/forums/sho...d.php?t=403086
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 344
    Points : 104
    Points
    104
    Par défaut
    hello à tous
    une idée pour obtenir, non pas une chaine reprenant les valeurs multiples trouvées
    mais par ex la somme de ces valeurs multiples trouvées ?

    @+
    laurent

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/07/2019, 12h07
  2. [XL-2010] Effectuer une recherche avec plusieurs résultats possibles
    Par Benoit74 dans le forum Excel
    Réponses: 4
    Dernier message: 21/02/2014, 13h41
  3. Recherchev avec plusieurs choix possibles
    Par solorac dans le forum Excel
    Réponses: 1
    Dernier message: 30/09/2008, 15h00
  4. RECHERCHEV avec plusieurs resultats !
    Par Bb''r dans le forum Excel
    Réponses: 14
    Dernier message: 08/08/2007, 19h31
  5. Jointure avec plusieurs résultats
    Par kemenaran dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/12/2005, 23h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo