web-dev-qa-db-fra.com

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

Ma colonne Excel est remplie de mots comme celui-ci:

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

Je souhaite diviser chaque mot en fonction de ":" et placer le résultat dans des colonnes adjacentes telles que "ABC: DCF" dans la cellule "A: 1" devienne "ABC" dans la cellule "B: 1" et "DCF "dans la cellule" C: 1 "ainsi que les valeurs correspondantes dans chaque colonne. Comment faire ça?

57
user1518659

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

63
BrOSs

Le texte en colonnes fonctionnera. Une autre option, si vous souhaitez conserver la valeur d'origine, consiste à utiliser des formules:
en B1

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

en C1

=mid(a1,find(":",a1)+1,len(a1))
79
nutsch

Si vous pouvez utiliser VBA, vous pouvez utiliser la fonction Split(). Voici une fonction définie par l'utilisateur (UDF) que vous pouvez utiliser dans une cellule. Il divise votre choix de personnage et renvoie le ne élément de la liste scindée.

Voir Comment ajouter VBA dans MS Office? pour plus d'informations sur la définition d'un fichier UDF.

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

Donc, vous devez entrer:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
26
Jamie Bull

Collez-le dans 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))

Edit: J'ai déjà posté la version localisée de la formule, où «,» a été remplacé par «; Cela ne fonctionne pas dans la version US d'Excel:

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

6
Hardi Uutma