Extraire des chiffres d'une chaine de caractère à une autre
Résolu
Louloude74
Messages postés
62
Statut
Membre
-
Louloude74 Messages postés 62 Statut Membre -
Louloude74 Messages postés 62 Statut Membre -
Bonjour à tous,
J'espère que vous allez tous bien en cette période de confinement. Pour ma part je cherche de quoi m'occuper et très vite je me retrouve bloqué. Je me suis lancer dans une "aide sudoku".
Je cherche en vain une solution à ces deux problématiques : comment extraire les chiffres en double dans une chaine de caractère puis comment les extraire dans une autre chaine de caractère. Ex :
A1 : 6767
A2 : 67 (sans doublon)
B1 : 136 (extraire en B1 le ou les chiffres en A2)
C1 : 13 (ce que je souhaite obtenir)
ou
A1 : 69693737
A2 : 6937 (sans doublon)
B1 : 1639 (extraire en B1 le ou les chiffres en A2)
C1 : 1 (ce que je souhaite obtenir)
En A et B la longueur de la chaine est variable mais que des chiffres.
Je vous souhaite une très bonne journée et par avance merci.
Ludwig
J'espère que vous allez tous bien en cette période de confinement. Pour ma part je cherche de quoi m'occuper et très vite je me retrouve bloqué. Je me suis lancer dans une "aide sudoku".
Je cherche en vain une solution à ces deux problématiques : comment extraire les chiffres en double dans une chaine de caractère puis comment les extraire dans une autre chaine de caractère. Ex :
A1 : 6767
A2 : 67 (sans doublon)
B1 : 136 (extraire en B1 le ou les chiffres en A2)
C1 : 13 (ce que je souhaite obtenir)
ou
A1 : 69693737
A2 : 6937 (sans doublon)
B1 : 1639 (extraire en B1 le ou les chiffres en A2)
C1 : 1 (ce que je souhaite obtenir)
En A et B la longueur de la chaine est variable mais que des chiffres.
Je vous souhaite une très bonne journée et par avance merci.
Ludwig
Configuration: Macintosh / Safari 13.1
A voir également:
- Extraire des chiffres d'une chaine de caractère à une autre
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, moi je réaliserais cela en écrivant deux fonctions en VBA.
en B1:
en C1:
il est possible de faire plus simple su tu n'as pas besoin de la valeur en B1
Option Explicit
Function sansdoublon(entree As String) As String
Dim car As String, i As Integer
For i = 1 To Len(entree)
car = Mid(entree, i, 1)
If InStr(sansdoublon, car) = 0 Then
sansdoublon = sansdoublon + car
End If
Next i
End Function
Function extrait(entree As String, filtre As String) As String
Dim car As String, i As Integer
For i = 1 To Len(entree)
car = Mid(entree, i, 1)
If InStr(filtre, car) = 0 Then
extrait = extrait + car
End If
Next i
End Function
en B1:
=sansdoublon(A1)
en C1:
=extrait(A2;B1)
il est possible de faire plus simple su tu n'as pas besoin de la valeur en B1
Bonjour,
J'avoue qu'une fonction serait super mais mes connaissances ne me permette pas d'en réaliser.
Par contre j'ai réussi à obtenir un résultat qui me convient pour la deuxième partie de ma problématique avec entre autre " ESTERREUR " et " TROUVE ".
Me reste l'histoire des chiffres en doublon.
Encore merci.
Ludwig
J'avoue qu'une fonction serait super mais mes connaissances ne me permette pas d'en réaliser.
Par contre j'ai réussi à obtenir un résultat qui me convient pour la deuxième partie de ma problématique avec entre autre " ESTERREUR " et " TROUVE ".
Me reste l'histoire des chiffres en doublon.
Encore merci.
Ludwig
C'est dingue ça à l'air si simple. Merci beaucoup !
La fonction fonctionne à merveille et fait exactement ce que je souhaitais. En ce qui concerne la fonction extrait je dois la tester.
Encore merci !
Bon dimanche.
Ludwig
Question bonus : peut-on avec la fonction sans doublon avoir le résultat dans l'ordre croissant ?
Par avance merci. ☺️
Ludwig
Function sansdoublon(entree As String) As String Dim car As String, i As Integer, cars() As String, ncars As Integer, j As Integer, tmp As String For i = 1 To Len(entree) car = Mid(entree, i, 1) If InStr(tmp, car) = 0 Then ncars = ncars + 1 ReDim Preserve cars(1 To ncars) cars(ncars) = car tmp = tmp + car End If Next i For i = 1 To ncars For j = i + 1 To ncars If cars(i) > cars(j) Then tmp = cars(i) cars(i) = cars(j) cars(j) = tmp End If Next j Next i For i = 1 To ncars sansdoublon = sansdoublon + cars(i) Next i End FunctionÇa marche terriblement bien. C'est très gentil à toi. Merci.
Encore merci. ????
Ludwig