XL 2019 INDEX EQUIV et concatener

  • Initiateur de la discussion Initiateur de la discussion playmo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

playmo

XLDnaute Nouveau
Bonjour, ci-joint un tableau qui me pose soucis. Je souhaite compiler des information issues des ligne de ce tableau. Ayant essayé INDEX+EQUIV je sèche à cause des cellule vides.
Auriez-vous des idées ? J'espère que le tableau sera clair dans mes explications.
Bonne journée
 

Pièces jointes

Solution
Bonjour à tous,

Une solution assez simple avec les noms définis An et X.

Formule en F2 :
Code:
=SIERREUR(SUPPRESPACE(DROITE(X;2))&"/"&An;"Pas de correction")
On suppose que les textes séparés par des tirets comportent 1 ou 2 chiffres.

A+
Bonjour à tous,

un début de piste avec une table Power Query et index()
VB:
=SIERREUR(INDEX(Tableau1_1[Fusionné];EQUIV(Feuil1!$A2&MAX.SI.ENS(Tableau1_1[Attribut];Tableau1_1[Test];$A2);Tableau1_1[Test]&Tableau1_1[Attribut];0));"pas de correction")

JHA
 

Pièces jointes

Bonjour Playmo, JHA,
Ou encore avec une ch'tite fonction perso :
VB:
Function Dernier(Plage)
Dim T, DerL%, i%, T2, Année
T = Plage
DerL = UBound(T)
For i = UBound(T, 2) To 2 Step -1
    If T(DerL, i) <> "" Then
        If T(DerL, i) Like "* - *" Then
            T2 = Split(T(DerL, i), " - ")
            Dernier = T2(UBound(T2))
            Année = T(1, i): Exit For
        Else
            Dernier = T(DerL, i)
            Année = T(1, i): Exit For
        End If
    End If
Next i
If Dernier = "" Then
    Dernier = "Pas de correction"
Else
    Dernier = Dernier & "/" & Année
End If
End Function
Syntaxe : =Dernier(Plage)
 

Pièces jointes

Bonjour à tous,

Une solution assez simple avec les noms définis An et X.

Formule en F2 :
Code:
=SIERREUR(SUPPRESPACE(DROITE(X;2))&"/"&An;"Pas de correction")
On suppose que les textes séparés par des tirets comportent 1 ou 2 chiffres.

A+
 

Pièces jointes

Bonjour Playmo, JHA,
Ou encore avec une ch'tite fonction perso :
VB:
Function Dernier(Plage)
Dim T, DerL%, i%, T2, Année
T = Plage
DerL = UBound(T)
For i = UBound(T, 2) To 2 Step -1
    If T(DerL, i) <> "" Then
        If T(DerL, i) Like "* - *" Then
            T2 = Split(T(DerL, i), " - ")
            Dernier = T2(UBound(T2))
            Année = T(1, i): Exit For
        Else
            Dernier = T(DerL, i)
            Année = T(1, i): Exit For
        End If
    End If
Next i
If Dernier = "" Then
    Dernier = "Pas de correction"
Else
    Dernier = Dernier & "/" & Année
End If
End Function
Syntaxe : =Dernier(Plage)
Bonjour, cette solution me parait être la plus pertinente, mais je n'arrive pas à l'intégrer dans mon fichier. Entre autre "dernier" qui semble être un nom faisant référence à une plage, mais dont je n'arrive pas à trouver trace ni la plage correspondante. Pourriez vous m'aiguiller ?
 
mais je n'arrive pas à l'intégrer dans mon fichier. Entre autre "dernier" qui semble être un nom faisant référence à une plage,
Il s'agit d'une fonction personnelle.
Une fois cette fonction copiée dans votre projet, et une fois renommé votre fichier en xlsm pour prendre en compte les macros, "Dernier" devient une fonction comme toute fonction XL.
Il suffit par exemple en F2 de rentrer la formule :
VB:
=Dernier($A$1:D2)
La fonction récupère la plage $A$1.D2 et l'analyse avant de renvoyer le résultat : 15/2024.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
720
Réponses
6
Affichages
901
Réponses
4
Affichages
938
  • Question Question
Autres excel
Réponses
8
Affichages
739
Retour