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
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
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
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