recherchev avec plusieurs valeurs a renvoyer en concaténation

stock14

XLDnaute Nouveau
Bonjour,
Je souhaite a partir d'une date renvoyer dans la même cellule tous les événements d'une base a cette date.
Il me semble avoir compris qu'il faut utiliser la fonction decaler avec equiv, mais je n'arrive pas à le formaliser ni même à le comprendre.
Pouvez-vous m'aider ?

Il faudrait qu'en C4 je retrouve et "rédaction de l'AAPC, et validation de l'AAPC". (concatené avec &" "& entre les deux résultats.)

Et autre question si il y a plus de deux éléments à la même date, je souhaiterai avoir en résultat "rédaction de l'AAPC + x autres événements"

Merci de vos éclairages.
 

Pièces jointes

  • Classeur1-test.xls
    14.5 KB · Affichages: 95

gosselien

XLDnaute Barbatruc
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Bonjour,

juste pour ton info, une date ne DOIT PAS être scindée en deux (risque d'erreur)
donc ta cellule B1 et plus bas devraient être : jjj-jj/mmm/aaa (format/cellule/personnaliser)
sauf si tu as une raison particulière de faire comme dans ton fchier :)

P.
 

stock14

XLDnaute Nouveau
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Bonjour la date n'est pas scindée, elle est juste au format jj-mmmm.
Ce qui sauf erreur de ma part n'impacte en rien la valeur de la cellule qui au format nombre renvoie 43843.
Cordialement
 

Iznogood1

XLDnaute Impliqué
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Stock,

ci-dessous une formule (peut-être optimisable !) qui devrait satisfaire ton besoin (à coller en C1, puis à recopier)
Attention : limitée à 10 000 lignes ; si ce n'est pas suffisant, remplace le 10 000 par le nombre de ton choix dans la formule
Code:
=SI(SOMMEPROD((H:H=B1)*1)=1;RECHERCHEV(B1;H:L;5;0);SI(SOMMEPROD((H:H=B1)*1)=2;RECHERCHEV(B1;H:L;5;0) & " & " & INDEX(H:L;EQUIV(B1;H:H;0)+EQUIV(B1;DECALER($H$1;EQUIV(B1;H:H;0);0):H$10000;0);5);SI(SOMMEPROD((H:H=B1)*1)>2;INDEX(H:L;LIGNES($1:$1);5;EQUIV(B1;H:H;0)) &" + " & SOMMEPROD((H:H=B1)*1) -1 & " autres événements";"")))

Démo : Ce lien n'existe plus
 

gosselien

XLDnaute Barbatruc
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Bonjour la date n'est pas scindée, elle est juste au format jj-mmmm.
Ce qui sauf erreur de ma part n'impacte en rien la valeur de la cellule qui au format nombre renvoie 43843.
Cordialement

Bonjour Stock14, Iznogood1 et le forum,

ce que je voulais dire, c'est que en colonne A tu indiques "L" pour lundi je présume et en B1 la date; ti tu mets le format proposé dans la cellule B1 , tu auras directement le jour exact de la date sans risque d'erreur ; tous les 13 janvier ne sont pas des lundis :)

Bonne journée
P.
 

stock14

XLDnaute Nouveau
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Bonjour Stock14, Iznogood1 et le forum,

ce que je voulais dire, c'est que en colonne A tu indiques "L" pour lundi je présume et en B1 la date; ti tu mets le format proposé dans la cellule B1 , tu auras directement le jour exact de la date sans risque d'erreur ; tous les 13 janvier ne sont pas des lundis :)

Bonne journée
P.

Ok, je comprends mieux ta remarque.
En fait dans le fichier d'origine, Le "L" en B1 est calculé par une fonction recherchev, basée sur le résultat d'une fonction JOURSEM. J'ai supprimé cette formule dans l'extrait de fichier car ce n'était pas en lien direct de ma demande.
 

stock14

XLDnaute Nouveau
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Stock,

ci-dessous une formule (peut-être optimisable !) qui devrait satisfaire ton besoin (à coller en C1, puis à recopier)
Attention : limitée à 10 000 lignes ; si ce n'est pas suffisant, remplace le 10 000 par le nombre de ton choix dans la formule
Code:
=SI(SOMMEPROD((H:H=B1)*1)=1;RECHERCHEV(B1;H:L;5;0);SI(SOMMEPROD((H:H=B1)*1)=2;RECHERCHEV(B1;H:L;5;0) & " & " & INDEX(H:L;EQUIV(B1;H:H;0)+EQUIV(B1;DECALER($H$1;EQUIV(B1;H:H;0);0):H$10000;0);5);SI(SOMMEPROD((H:H=B1)*1)>2;INDEX(H:L;LIGNES($1:$1);5;EQUIV(B1;H:H;0)) &" + " & SOMMEPROD((H:H=B1)*1) -1 & " autres événements";"")))

Démo : Ce lien n'existe plus

Bonjour Iznogood1,
Merci pour ta réponse.
J'ai essayé ta formule, elle me renvoi #NOMBRE ! en résultat, en C1, et dans les cellules qui sont copiées vers le bas.Je n'arrive pas à corriger la formule, et surtout première question, à quoi correspond cette erreur ?
Merci de ton aide.
 

klin89

XLDnaute Accro
Re : recherchev avec plusieurs valeurs a renvoyer en concaténation

Bonsoir à tous

A tester :
VB:
Sub Essai()
Dim a, i As Long, n As Long
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        a = .Range("E1").CurrentRegion.Value
        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For i = 1 To UBound(a, 1)
                If Not .exists(a(i, 1)) Then
                    n = n + 1
                    a(n, 1) = a(i, 1)
                    a(n, 2) = a(i, 5)
                    .Item(a(i, 1)) = n
                Else
                    a(.Item(a(i, 1)), 2) = a(.Item(a(i, 1)), 2) & " " & a(i, 5)
                End If
            Next
            ReDim Preserve a(1 To UBound(a, 1), 1 To 2)
            For i = 1 To n
                .Item(a(i, 1)) = Array(a(i, 1), a(i, 2))
            Next
            With Sheets("Feuil1")
                a = .Range("A1").CurrentRegion
            End With
            ReDim Preserve a(1 To UBound(a, 1), 1 To 3)
            For i = 1 To UBound(a, 1)
                If .exists(a(i, 2)) Then
                    a(i, 3) = .Item(a(i, 2))(1)
                End If
            Next
        End With
        .Cells(1).Resize(UBound(a, 1), 3).Value = a
    End With
    Application.ScreenUpdating = True
End Sub
klin89
 

Pièces jointes

  • stock14.xls
    50 KB · Affichages: 59

Discussions similaires

Réponses
17
Affichages
553

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla