Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Formule recherche à choix multiple

Linda42

XLDnaute Occasionnel
Bonjour,

Je n'arrive pas à expliquer ce que je souhaite. Tout est dans le fichier. Je voudrais que soit reporté dans la colonne le nom du candidat qui a la note attribuée 1.

Merci a tous
 

Pièces jointes

  • Formule recherche.xlsx
    9.6 KB · Affichages: 12
Solution
Bonjour

pas sur d'avoir compris

une proposition en PJ
1) tableau transformé en Table structurée
2) syntaxe Lot 1 Lot 2 harmonisée (suppression des espaces et du
3) formule avc Sommeprod pour récuperer le candidat de chaque lot

vgendron

XLDnaute Barbatruc
Bonjour

pas sur d'avoir compris

une proposition en PJ
1) tableau transformé en Table structurée
2) syntaxe Lot 1 Lot 2 harmonisée (suppression des espaces et du
3) formule avc Sommeprod pour récuperer le candidat de chaque lot
 

Pièces jointes

  • Formule recherche.xlsx
    11.8 KB · Affichages: 5

Linda42

XLDnaute Occasionnel
Parfait, c'est ce que je souhaitais obtenir. Merci beaucoup
Bonjour

pas sur d'avoir compris

une proposition en PJ
1) tableau transformé en Table structurée
2) syntaxe Lot 1 Lot 2 harmonisée (suppression des espaces et du
3) formule avc Sommeprod pour récuperer le candidat de chaque lot
Bonjour,

La formule est parfaite lorsque l'on attribue un lot à un candidat, mais parfois je peux attribuée un lot à plusieurs candidat, dans ce cas, il faudrait, que l'ensemble des candidats apparaissent, les uns à la suite des autres. J'imagine qu'il va y avoir un concatener mais je n'arrive pas à trouver la formule. Une idée?
Merci
 

Linda42

XLDnaute Occasionnel
Bonjour

Avec du Power Query
si tu modifies la première table, tu fais un clic droit/actualiser sur la table de résultat
merci pour cette astuce, mais elle va me bloquer dans la suite. En effet, je vais utiliser cette table en tant que matrice pour une formule de recherchev; si j'ai deux ligne du même lot, je vais avoir une erreur. L'idéal aurait été d'avoir une ligne Lot 1, avec sur la colonne 2 TER; VGE
De cette façon, ma future formule de recherchev, va me permettre e renvoyer la colonne 2
Je sais si je suis clair ou si c'est possible avec une formule sans passer par Query (d'autant que l'utilisation finale sera pour des collaborateurs ne sachant pas utilisé power query (je suis moi meme une débutante avec cette appli)
 

Linda42

XLDnaute Occasionnel
Bonjour à tous,
Tu ne sais pas ou tu vas ?

Et si tu disais tout de suite la finalité de ta demande, une solution globale te serait surement proposée ?

Crdlmt
Effectivement, je pensais que le plus simple était d'y aller par étape.

J'ai une base de données avec une multitude de lots et de candidats, qui sont parfois retenu pour des lots, parfois rejeté pour d'autre et parfois retenue et rejeté sur des lots différents. Je prépare donc une base de donnée qui me servira pour un publipostage, qui permettra d'envoyer un courrier à ces fournisseur pour leur dire vous serez retenu pour tel lot, rejeté pour tel lot. Mais je dois préciser pour les lots rejetés, le motif du rejet mais aussi le fournisseur ou les fournisseur retenus sur ce lot. Le tableau envoyé n'ai qu'une parti de ma base de donnée, et ma demande était de pouvoir identifier le ou les fournisseurs retenu pour qu'il apparaissent comme champ dans mon publipostage adressé aux fournisseurs qui est/sont rejeté(s).
Lors de ma premiere demande, je n'ai pas réalisé qu'un lot pouvait être attribué à plus candidat. C'est en appliquant la formule du post 2, que je me suis rendu compte que cette formule se limitait uniquement pour 1 lot/1 candidat. D'oû mon dernier poste

Merci encore
 

job75

XLDnaute Barbatruc
Bonjour le forum,

Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function Joindre(col1 As Range, lot$, col2 As Range, n, col3 As Range, sep$)
Dim r As Range
For Each r In col1.Parent.UsedRange.Rows
    If Intersect(r, col2) = lot And Intersect(r, col3) = n Then Joindre = Joindre & sep & Intersect(r, col1)
Next
Joindre = Mid(Joindre, Len(sep) + 1)
End Function
Le code doit être dans un module standard.

Formule en G2 à tirer vers le bas :
Code:
=Joindre(A:A;F2;B:B;1;D:D;", ")
A+
 

Pièces jointes

  • Fonction Joindre.xlsm
    16.9 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour le forum,

Linda42 ne se manifeste plus, tant pis.

La solution précédente nécessite que la colonne F soit renseignée manuellement.

Ave cette macro affectée au bouton tout le tableau des résultats est calculé :
VB:
Sub Calcul()
Dim dest As Range, tablo, sep$, d As Object, i&, x$, n&
tablo = [A1].CurrentRegion.Resize(, 4)
sep = ", " 'séparateur
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    If tablo(i, 4) = 1 Then
        x = tablo(i, 2)
        If x <> "" Then
            If d.exists(x) Then
                d(x) = d(x) & sep & tablo(i, 1)
            Else
                d(x) = tablo(i, 1)
            End If
        End If
    End If
Next
'---restitution---
n = d.Count
With [F2] '1ère cellule de destination, à adapter
    If n Then
        .Resize(n) = Application.Transpose(d.keys) 'Transpose est limitée à 65536 lignes
        .Offset(, 1).Resize(n) = Application.Transpose(d.items)
    End If
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 2).ClearContents 'RAZ en dessous
End With
End Sub
A+
 

Pièces jointes

  • Calcul.xlsm
    19.1 KB · Affichages: 2

AtTheOne

XLDnaute Accro
Supporter XLD
Re
@Linda42,
Il me semble que la fonction CONCAT() est disponible dans EXCEL2019 alors en transformant ta liste en tableau structuré nommé tbBdD tu peux essayer de définir le nom suivant :
Récipiendaires=CONCAT(SI((tbBdD[Numéro et Intitulé du Lot]=tbBdD[[#Cette ligne];[Numéro et Intitulé du Lot]])*(tbBdD[Attribuée]=1);INDEX(tbBdD[Candidat];LIGNE(tbBdD[Attribuée]))&", ";""))

Et de mettre dans ta colonne "Candidat retenu" la formule suivante :
Code:
=STXT(Récipiendaires;1;NBCAR(Récipiendaires)-2)
(pas besoin de valider par CTRL MAJ ENTREE car la formule matricielle est contenue dans un nom défini)

(Le fichier joint a été enregistré avec une version 2024 d'EXCEL)

À bientôt
 

Pièces jointes

  • Formule recherche AtTheOne.xlsx
    12 KB · Affichages: 1

Linda42

XLDnaute Occasionnel
Bonjour,

Désolée, j'ai été prise par d'autre tâche.
Merci à job75:
- pour le poste 9 et pour cette proposition, mais malheureusement notre administrateur bloque tous les téléchargements des fichiers avec macro donc impossible de voir l'exemple. J'ai tenté de faire des copiers collers mais cela n'a pas fonctionner, mais je ne sais pas si il y a des modification du fichier exemple car dans le mien, cela ne fonctionnait pas.
- je vais tout de même tester le post 10 pour voir ce que cela donne. Merci
Par ailleurs l'idée de base était de passer par une formule que mes utilisateurs pourraient réutiliser facilement autant de fois que nécessaire. Les requêtes qwery et code VBA, je banni car ces collaborateurs n'ont pas du tout l'habitude d travailler sur excel et cela semble compliquer pour eux. En tout ca me servira à moi, je l'espère.
Merci encore
 

Linda42

XLDnaute Occasionnel
Re, Merci,
Je tente et je vous dis. cette solution me parait la plus adapter car pas de VBA. Il faudra juste que je demande à mes collaborateur de télécharger excel 2019 car il sont sur 2016.

A toute
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…