2012-10-03 16:16:00 +0000 2012-10-03 16:16:00 +0000
58
58
Advertisement

Comment diviser une chaîne de caractères basée sur " :" dans MS-Excel ?

Advertisement

Ma colonne Excel est remplie de mots comme ceci :

1.) ABC:DCF
2.) DCF:FED

Je veux diviser chaque mot basé sur “ : ” et mettre le résultat dans des colonnes adjacentes de sorte que “ABC:DCF” dans la cellule “A:1” devienne “ABC” dans la cellule “B:1” et “DCF” dans la cellule “C:1” et aussi les valeurs correspondantes dans chaque colonne. Comment procéder ?

Advertisement
Advertisement

Réponses (4)

84
84
84
2012-10-03 16:34:14 +0000

Le texte aux colonnes fonctionnera. Une autre option, si vous souhaitez conserver la valeur originale, consiste à utiliser les formules suivantes : dans B1

=left(a1,find(":",a1)-1)

dans C1

=mid(a1,find(":",a1)+1,len(a1))
63
63
63
2012-10-03 16:20:12 +0000

Allez à l'onglet Données, puis à l'option Texte aux colonnes. Plus tard, choisissez l'option “Délimité”, puis sélectionnez “autre” et mettez le délimiteur de votre choix.

26
Advertisement
26
26
2012-10-03 18:42:46 +0000
Advertisement

Si vous pouvez utiliser VBA, vous pouvez alors utiliser la fonction Split(). Voici une fonction définie par l'utilisateur (UDF) que vous pouvez utiliser dans une cellule. Elle se divise selon votre choix de caractère et renvoie le nième élément de la liste divisée.

Voir Comment ajouter VBA dans MS Office ? pour savoir comment définir une UDF.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

Vous devez donc entrer :

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
8
8
8
2016-09-05 16:44:45 +0000

Collez-le en B1 et remplissez-le dans les colonnes de droite et les lignes du bas :

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

Modifiez : j'ai précédemment affiché la version localisée de la formule, où “,” a été remplacé par “ ;”. Cela ne fonctionne pas dans la version américaine d'Excel:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))

Advertisement

Questions connexes

6
13
9
10
2
Advertisement
Advertisement