Rechercher deux mot dans une phrase + ID avec ordre

Bonjour à tous,

Je viens vers vous car je cherche depuis un moment avec les fonction "TROUVE" etc mais je n'y parviens pas...

Mon problème :

Ma phrase se trouve dans la cellule B à chaque fois.

1ère Manip : J'aimerai identifier les 2 animaux présents dans la phrase suivant le petit tableau "animaux possibles". J'aimerai recopier suivant l'ordre de lecture de la phrase, les deux animaux respectivement dans les cases jaunes "Anim1" et "Anim2".

2ème Manip : Pour le ratio j'aimerai identifier le ratio dans la phrase. Il est toujours du même format et s'écrit : ".../..." => les 3points sont automatiquement des nombres. Et ainsi les recopier respectivement dans les cases jaunes Ratio 1 et Ratio 2 selon l'ordre de lecture de la phrase.

J'ai laissé le résultat que j'aimerai obtenir dans le tableau afin de faciliter votre compréhension.

J'espère avoir suffisamment détaillé le problème et je suis dispo pour toutes vos questions. N'hésitez pas à me dire si le problème est trop compliqué.

Agréable journée et un grand merci d'avance.

AllanHub

13aide-for.xlsx (11.58 Ko)

Petit UP ?

Je continue à chercher mais je ne trouve pas peut-être que ce n'est pas possible ? Ou alors faut-il passer par le VBA ?

Bonjour

Formule en E3, incrémentée vers le bas

=STXT(B3;1;CHERCHE("/";B3;1)-1)

Dormule en F3, incrémentée vers le bas (Matricielle à valider avec les 3 touches Ctrl+Maj+Entrée)

=INDEX($K$1:$K$9;SOMME(ESTNUM(CHERCHE(SI($K$6:$K$9<>"";$K$6:$K$9);SUBSTITUE($B3;E3;"")))*LIGNE($K$6:$K$9)))

Cordialement

8aide-for.xlsx (12.13 Ko)

Bonjour,

Voilà une fonction personnalisée matricielle qu'il m'a fallu un certain temps pour lui faire prendre en compte presque toutes les irrégularités de tes chaînes (multiplication de slash, espaces en début ou fin, ou accolés au slash...).

Elle s'utilise sur les 4 colonnes résultats de la ligne (à sélectionner avant d'insérer la fonction et de la valider matriciellement.

Les arguments sont la chaîne et la liste de référence.

Quand elle renvoie N/A, c'est qu'il y a une espace intempestive qui ne peut être géré individuellement... Il ne te reste qu'à l'éliminer manuellement (et la fonction renverra alors le résultat).

Function LISTERCOUPLES(tx As String, liste)
    Dim T, tt, el, i%, n%, anim As Boolean
    Application.Volatile
    T = Replace(Replace(tx, " /", "/"), "/ ", "/")
    T = Split(T)
    For i = 0 To UBound(T)
        If InStr(T(i), "/") Then
            tt = Replace(Replace(T(i), "/", "|", 1, 1), "/", "")
            tt = Split(tt, "|")
            If anim Then
                T(i) = Join(tt, "|")
            Else
                For Each el In liste
                    If InStr(tt(0), Trim(el)) Then
                        tt(0) = Trim(el): n = n + 1
                        If n = 2 Then Exit For
                    End If
                    If InStr(tt(1), Trim(el)) Then
                        tt(1) = Trim(el): n = n + 1
                        If n = 2 Then Exit For
                    End If
                Next el
                If n = 2 Then
                    T(i) = Join(tt, "|") & "|": anim = True
                Else
                    T(i) = ""
                End If
            End If
            n = 0
        Else
            T(i) = ""
        End If
    Next i
    T = Replace(Join(T), " ", "")
    If T <> "" Then
        LISTERCOUPLES = Split(T, "|")
    Else
        LISTERCOUPLES = CVErr(xlErrNA)
    End If
End Function

Re,

Les Deux solutions pour les animaux fonctionnent à merveille ! Merci pour la solution de plus MFerrand pour les Ratio !

Oui comme je l'ai expliqué par message la colonne B provient d'une extraction et je devais me débrouiller pour en extraire les info utiles malgré le bruit engendré par d'autre écriture dans la même phrase !

Vous avez répondu à ma demande et c'est super sympa, et je ne peux qu'être impressionné

Je vous en suis très reconnaissant ! Je vous tiens au courant pour l'application que je réussi à en faire sur mon fichier réel

Cordialement.

AllanHub

Rechercher des sujets similaires à "rechercher deux mot phrase ordre"