Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire Chaine

6 réponses
Avatar
Dante Huapaya
Bonjour a tous,

J'ai une colonne sur laquelle il y a 9 chaines possibles que j'aimerais
extraire.
l'example qui vaut mille mots est:
(Chaines possibles: ASA, APA, DPD, etc)
Chaque chaine est juste une fois sur chaque ligne

Ma Colonne
ES55KK APA ZZZZZ
ES ASA AUTRETGH
ES599BPLUSLOIN DPD CERPI
Comment extraire ces chaines qui peuvent se retrouver n"importe ou sur
la cellule.
Merci de votre aide
Dante

6 réponses

Avatar
JB
Bonsoir,


=INDEX({"ASA";"APA";"DPD"};EQUIV(1;EQUIV("*"&{"ASA";"APA";"DPD"}
&"*";A1;0);0))
Valider avec maj+ctrl+entrée

JB
http://boisgontierjacques.free.fr/


On 18 nov, 18:41, Dante Huapaya
wrote:
Bonjour a tous,

J'ai une colonne sur laquelle il y a 9 chaines possibles que j'aimerais
extraire.
l'example qui vaut mille mots est:
(Chaines possibles: ASA, APA, DPD, etc)
Chaque chaine est juste une fois sur chaque ligne

Ma Colonne
ES55KK APA ZZZZZ
ES ASA AUTRETGH
ES599BPLUSLOIN DPD CERPI
Comment extraire ces chaines qui peuvent se retrouver n"importe ou sur
la cellule.
Merci de votre aide
Dante


Avatar
garnote
Bonsoir Dante,

Une fonction personnalisée, peut-être :
(à adapter au nombre de sous-chaînes)

Public Function extrait(c As Range) As String
ch = Array("ASA", "APA", "DPD")
For i = 0 To UBound(ch)
p = InStr(1, c.Value, ch(i))
If p > 0 Then
extrait = ch(i)
Exit Function
End If
Next i
extrait = ""
End Function

Exemple : =extrait(A1)

Serge



"Dante Huapaya" a écrit dans le
message de news:
Bonjour a tous,

J'ai une colonne sur laquelle il y a 9 chaines possibles que j'aimerais
extraire.
l'example qui vaut mille mots est:
(Chaines possibles: ASA, APA, DPD, etc)
Chaque chaine est juste une fois sur chaque ligne

Ma Colonne
ES55KK APA ZZZZZ
ES ASA AUTRETGH
ES599BPLUSLOIN DPD CERPI
Comment extraire ces chaines qui peuvent se retrouver n"importe ou sur
la cellule.
Merci de votre aide
Dante




Avatar
garnote
Ma dernière fonction n'inscrit rien si,
par exemple, aPa, aSA, dpD, ...
apparaissent dans tes cellules.
Si tu veux voir apparaître ASA, APA ou DPD
dans ces cas-là, remplace :
p = InStr(1, c.Value, ch(i))
par
p = InStr(1, UCase(c.Value), ch(i))

Serge

"garnote" a écrit dans le message de news:
%
Bonsoir Dante,

Une fonction personnalisée, peut-être :
(à adapter au nombre de sous-chaînes)

Public Function extrait(c As Range) As String
ch = Array("ASA", "APA", "DPD")
For i = 0 To UBound(ch)
p = InStr(1, c.Value, ch(i))
If p > 0 Then
extrait = ch(i)
Exit Function
End If
Next i
extrait = ""
End Function

Exemple : =extrait(A1)

Serge



"Dante Huapaya" a écrit dans le
message de news:
Bonjour a tous,

J'ai une colonne sur laquelle il y a 9 chaines possibles que j'aimerais
extraire.
l'example qui vaut mille mots est:
(Chaines possibles: ASA, APA, DPD, etc)
Chaque chaine est juste une fois sur chaque ligne

Ma Colonne
ES55KK APA ZZZZZ
ES ASA AUTRETGH
ES599BPLUSLOIN DPD CERPI
Comment extraire ces chaines qui peuvent se retrouver n"importe ou sur
la cellule.
Merci de votre aide
Dante








Avatar
Dante Huapaya
Merci enormement, ca me sauve un temps fou!

Au plaisir

Dante

"JB" a écrit :

Bonsoir,


=INDEX({"ASA";"APA";"DPD"};EQUIV(1;EQUIV("*"&{"ASA";"APA";"DPD"}
&"*";A1;0);0))
Valider avec maj+ctrl+entrée

JB
http://boisgontierjacques.free.fr/


On 18 nov, 18:41, Dante Huapaya
wrote:
> Bonjour a tous,
>
> J'ai une colonne sur laquelle il y a 9 chaines possibles que j'aimerais
> extraire.
> l'example qui vaut mille mots est:
> (Chaines possibles: ASA, APA, DPD, etc)
> Chaque chaine est juste une fois sur chaque ligne
>
> Ma Colonne
> ES55KK APA ZZZZZ
> ES ASA AUTRETGH
> ES599BPLUSLOIN DPD CERPI
> Comment extraire ces chaines qui peuvent se retrouver n"importe ou sur
> la cellule.
> Merci de votre aide
> Dante

.



Avatar
SylVBA
Bonsoir,

Bravo à JB alors celle la elle me scotche .....

Un Index Equiv comme cela, jamais vu

A bientot à vous tous,

SylVBA
Avatar
Dante Huapaya
Merci beaucoup Garnote,
Cette function me sera utile, dependement mes besoins.
Bonne journée a tous

Dante

"garnote" a écrit :

Ma dernière fonction n'inscrit rien si,
par exemple, aPa, aSA, dpD, ...
apparaissent dans tes cellules.
Si tu veux voir apparaître ASA, APA ou DPD
dans ces cas-là, remplace :
p = InStr(1, c.Value, ch(i))
par
p = InStr(1, UCase(c.Value), ch(i))

Serge

"garnote" a écrit dans le message de news:
%
> Bonsoir Dante,
>
> Une fonction personnalisée, peut-être :
> (à adapter au nombre de sous-chaînes)
>
> Public Function extrait(c As Range) As String
> ch = Array("ASA", "APA", "DPD")
> For i = 0 To UBound(ch)
> p = InStr(1, c.Value, ch(i))
> If p > 0 Then
> extrait = ch(i)
> Exit Function
> End If
> Next i
> extrait = ""
> End Function
>
> Exemple : =extrait(A1)
>
> Serge
>
>
>
> "Dante Huapaya" a écrit dans le
> message de news:
>> Bonjour a tous,
>>
>> J'ai une colonne sur laquelle il y a 9 chaines possibles que j'aimerais
>> extraire.
>> l'example qui vaut mille mots est:
>> (Chaines possibles: ASA, APA, DPD, etc)
>> Chaque chaine est juste une fois sur chaque ligne
>>
>> Ma Colonne
>> ES55KK APA ZZZZZ
>> ES ASA AUTRETGH
>> ES599BPLUSLOIN DPD CERPI
>> Comment extraire ces chaines qui peuvent se retrouver n"importe ou sur
>> la cellule.
>> Merci de votre aide
>> Dante
>>
>>
>
>


.