RecherceV Multiple

Bonjour à tous,

J'aimerai une RechercheV qui aille me chercher toutes les valeurs pour un identifiant qui peut apparaitre plusieurs fois, le tout espacé avec des espaces si possible.

D'avance merci de votre aide.

Cordialement,

bonjour,

une proposition

=SUPPRESPACE(CONCAT(" " & INDEX(Data!A2:A3;(Data!B2:B3=A2)*LIGNE(A1:A2))))

Bonjour,

Une fois que je clique sur la formule, et que je réactive la fonction matricielle via "CTRl+AL+Entrée", ça ne m'affiche que le premier numéro d'alerte.

re-bonjour

je n'ai pas la possibilité de tester sur 2013, mais cela fonctionne avec 365. Il faudra sans doute passer par une fonction personnalisée.

Function SelRange(r, ParamArray parm())
    'sélectionne une plage en fonction de critères (comme la fonction IFs ou .SI.ENS)
    ' r est la plage dans laquelle sélectionner les valeurs
    'paramarray() est une liste de critères de sélection, les critères de sélection sont chacun composés de 2 parties
    '             la plage sur laquelle il faut vérifier le critère et le critère à vérifier

    ' exemple soit le tableau (avec plages nommées poids et age)
    ' poids age
    '   40  20
    '   30  25
    '   50  30
    ' pour sélectionner les ages des poids compris entre 30 et 45
    ' selrange(age,poids,">=30",poids,"<=45")

    ' selrange retourne un tableau qui peut être exploité dans une autre fonction telle que
    ' Min, Max, Stdev, etc...
    ' =Min(selrange(age,poids,">=30",poids,"<=45"))
    '
    Dim res()    'tableau contenant les valeurs sélectionnées
    For i = 1 To r.Count    'pour chaque valeur, on vérifie s'il faut la sélectionner
        For j = LBound(parm) To UBound(parm) Step 2    'on vérifie les critères, on prend les paramètres 2 par 2
            Set rc1 = parm(j)    '1er paramètre la plage sur laquelle appliquer le critère
            c1 = parm(j + 1)    ' 2eme paramètre la valeur du critère à sélectionner
            op = ""    ' opérateur peut être >,< ou = sur 1 ou 2 caractères
            For k = 1 To 2
                ch = Mid(c1, k, 1)
                If ch = "=" Or ch = "<" Or ch = ">" Then op = op & ch
            Next k
            c1 = Replace(c1, op, "")
            If op = "" Then op = "="    'si pas d'opérateur on met l'opérateur =
            ' conversion des données, donnée de la plage critère
            If IsDate(rc1(i)) Then    'date
                p1 = CDbl(rc1(i))
            ElseIf IsNumeric(rc1(i)) Then    'nombre
                p1 = rc1(i)
                Else    'texte
                    p1 = Chr(34) & rc1(i) & Chr(34)
                End If
                'conversion des données, valeur critère
                If Not IsNumeric(c1) Then c1 = Chr(34) & c1 & Chr(34)    'nombre
                ev = "=" & p1 & op & c1    'equation de sélection
                If Not Application.Evaluate(ev) Then j = 9999: Exit For    'la condition n'est pas vérifiée, la donnée ne sera pas sélectionnée
            Next j
            If j < 9999 Then    'toutes les conditions sont vérifiées on sélectionne la donnée
                c = c + 1
                ReDim Preserve res(c)
                res(c) = r(i)
            End If
        Next i
        SelRange = res
End Function

voir utilisation en colonne D

Bonjour,

Ci-joint une proposition avec une formule matricielle (en jaune) à valider par Ctrl + Maj + Entrée :

parfait exactement ce qu'il me fallait

Rechercher des sujets similaires à "rechercev multiple"