Extraire valeur

Fermé
magentolek Messages postés 1 Date d'inscription vendredi 5 août 2016 Statut Membre Dernière intervention 6 août 2016 - 6 août 2016 à 12:40
 Utilisateur anonyme - 6 août 2016 à 14:00
Bonjour,

J'ai un excel avec dans les cases d'une colonne donnee une chaîne de texte:
4,13,43,99,124,125,132,133,140,141,145,5

je voudrai par exemple extraire la valeur 4 dans une nouvelle colonne. mon problème est que les cases ne suivent pas toujours le même ordre et je ne peux donc pas utiliser la fonction stxt.

l'ideal serait une formule du type: si A1 contient "4"; B1="4"; sinon B1="0", je ne sais pas si cela existe.

merci d'avance pour votre aide
A voir également:

2 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
6 août 2016 à 13:27
Bonjour,

Une solution avec une fonction personnalisée
Function Trouve4(Cel As Range) As String
Dim T
Dim i As Integer
T = Split(Cel, ",")
Trouve4 = "0"
For i = 0 To UBound(T)
If T(i) = "4" Then
Trouve4 = "4"
Exit For
End If
Next i
End Function

A+
0
Bonjour magentolek,

Voici une solution sans macro :

En A1 : 4,13,43,99,124,125,132,133,140,141,145,5
En B1 : 132 (le nombre que tu cherches)
En C1 : =SIERREUR(CHERCHE("," & B1 & ",";"," & A1 & ",");0)
En D1 : =SI(C1>0;B1;0)

C1 retourne la position du nombre dans la chaîne,
ou 0 si le nombre n'a pas été trouvé.

Remarque : CHERCHE() retourne #VALEUR si valeur_cherchée
est introuvable ; c'est pourquoi j'ai utilisé SIERREUR().

D1 retourne le nombre s'il a été trouvé, 0 sinon.

Attention : si le nombre cherché apparaît plus d'une fois
dans la chaîne, seul le premier sera détecté. J'aurai bien
une solution pour cela, mais c'est inutile si le nombre
que tu cherches dans la chaîne n'y apparaît qu'une fois.

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊
 
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
6 août 2016 à 13:52
Bonjour albkan,

Je te propose
=SIERREUR(CHERCHE("," & B1& ",";"," & A1);0)
pour éviter le problème posé par les numéros 40, 41 ,etc...

A+
0
Utilisateur anonyme > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
6 août 2016 à 14:00
Bonjour Gyrus,

C'est exact, mais dans ce cas, il faut aussi ajouter une "," à la fin de A1
pour pouvoir détecter le dernier nombre ; de la même façon, j'avais
ajouté une "," devant A1 pour pouvoir détecter le premier nombre.

Merci pour ton intervention et pour ta correction ; je viens de modifier
mon message #2 en conséquence : ligne En C1 : =...

Cordialement.  😊
 
0