Fonction TEXTSPLIT dans Excel : diviser les chaînes de texte par le délimiteur

  • Partage Ça
Michael Brown

Le tutoriel montre comment utiliser la toute nouvelle fonction TEXTSPLIT pour séparer les chaînes de caractères dans Excel 365 par tout délimiteur que vous spécifiez.

Il peut arriver que vous ayez besoin de diviser des cellules dans Excel. Dans les versions précédentes, nous disposions déjà d'un certain nombre d'instruments pour accomplir cette tâche, tels que Text to Columns et Fill Flash. Désormais, nous disposons également d'une fonction spéciale, TEXTSPLIT, qui peut séparer une chaîne de caractères en plusieurs cellules sur des colonnes et/ou des lignes, en fonction des paramètres que vous spécifiez.

    Fonction Excel TEXTSPLIT

    La fonction TEXTSPLIT d'Excel divise les chaînes de texte par un délimiteur donné entre les colonnes et/ou les lignes. Le résultat est un tableau dynamique qui se répand automatiquement dans plusieurs cellules.

    La fonction peut prendre jusqu'à 6 arguments, dont seuls les deux premiers sont nécessaires.

    TEXTSPLIT(texte, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    texte (obligatoire) - le texte à diviser. Peut être fourni sous forme de chaîne ou de référence de cellule.

    col_delimiter (obligatoire) - un ou plusieurs caractères indiquant où diviser le texte entre les colonnes. Si elle est omise, délimiteur_de_ligne doivent être définis.

    délimiteur_de_ligne (facultatif) - un ou plusieurs caractères qui indiquent où diviser le texte entre les lignes.

    ignore_vide (facultatif) - spécifie si les valeurs vides doivent être ignorées ou non :

    • FALSE (par défaut) - crée des cellules vides pour les délimiteurs consécutifs sans valeur entre eux.
    • TRUE - ignore les valeurs vides, c'est-à-dire qu'il ne faut pas créer de cellules vides pour deux délimiteurs consécutifs ou plus.

    mode de correspondance (facultatif) - détermine la sensibilité à la casse pour le délimiteur. Activé par défaut.

    • 0 (par défaut) - sensible à la casse
    • 1 - insensible à la casse

    pad_with (facultatif) - une valeur à utiliser à la place des valeurs manquantes dans les tableaux à deux dimensions. La valeur par défaut est une erreur #N/A.

    Par exemple, pour diviser une chaîne de texte dans A2 en plusieurs cellules en utilisant une virgule et un espace comme séparateur, la formule est la suivante :

    =TEXTESPLIT(A2, ", ")

    Disponibilité du TEXTSPLIT

    La fonction TEXTSPLIT est uniquement disponible dans Excel pour Microsoft 365 (Windows et Mac) et Excel pour le web.

    Conseils :

    • Dans les versions d'Excel où la fonction TEXTSPLIT n'est pas disponible (autres qu'Excel 365), vous pouvez utiliser l'assistant Texte en colonnes pour diviser les cellules.
    • Pour effectuer la tâche inverse, c'est-à-dire pour joindre le contenu de plusieurs cellules en une seule en utilisant un certain délimiteur, TEXTJOIN est la fonction à utiliser.

    Formule de base TEXTSPLIT pour diviser une cellule dans Excel

    Pour commencer, voyons comment utiliser une formule TEXTSPLIT dans sa forme la plus simple pour séparer une chaîne de texte par un délimiteur particulier.

    Diviser une cellule horizontalement sur plusieurs colonnes

    Pour diviser le contenu d'une cellule donnée en plusieurs colonnes, fournissez une référence à la cellule contenant la chaîne originale pour la première ( texte ) et le délimiteur qui marque le point où le fractionnement doit se produire pour le deuxième argument ( col_delimiter ).

    Par exemple, pour séparer horizontalement la chaîne de caractères en A2 par une virgule, la formule est la suivante :

    =TEXTESPLIT(A2, ",")

    Pour le délimiteur, nous utilisons une virgule entre guillemets (",").

    Par conséquent, chaque élément séparé par une virgule est placé dans une colonne individuelle :

    Diviser une cellule verticalement entre les rangées

    Pour répartir le texte sur plusieurs lignes, le troisième argument ( délimiteur_de_ligne ) est l'endroit où vous placez le délimiteur. Le deuxième argument ( col_delimiter ) est omis dans ce cas.

    Par exemple, pour séparer les valeurs de A2 en différentes lignes, la formule est la suivante :

    =TEXTESPLIT(A2, ,",")

    Veuillez noter que, dans les deux cas, la formule n'est saisie que dans une seule cellule (C2). Dans les cellules voisines, les valeurs retournées se déversent automatiquement. Le tableau résultant (appelé plage de déversement) est surligné d'un bord bleu indiquant que tout ce qui s'y trouve est calculé par la formule de la cellule supérieure gauche.

    Diviser le texte par sous-chaîne

    Dans de nombreux cas, les valeurs de la chaîne source sont séparées par une séquence de caractères, une virgule et un espace étant un exemple typique. Pour gérer ce scénario, utilisez une sous-chaîne comme délimiteur.

    Par exemple, pour séparer le texte en A2 en plusieurs colonnes par une virgule et un espace, utilisez la chaîne ", " pour col_delimiter .

    =TEXTESPLIT(A2, ", ")

    Cette formule va dans B2, puis vous la copiez vers le bas dans autant de cellules que nécessaire.

    Diviser une chaîne de caractères en colonnes et en lignes à la fois

    Pour diviser une chaîne de texte en lignes et en colonnes à la fois, définissez les deux délimiteurs dans votre formule TEXTSPLIT.

    Par exemple, pour diviser la chaîne de texte en A2 entre les colonnes et les lignes, nous fournissons :

    • Le signe égal ("=") pour col_delimiter
    • Une virgule et une espace (", ") pour délimiteur_de_ligne

    La formule complète prend cette forme :

    =TEXTESPLIT(A2, "=", ", ")

    Le résultat est un tableau bidimensionnel composé de 2 colonnes et de 3 rangées :

    Séparer les cellules par des délimiteurs multiples

    Pour gérer les délimiteurs multiples ou incohérents dans la chaîne source, utilisez une constante de tableau comme {"x", "y", "z"} pour l'argument délimiteur.

    Dans la capture d'écran ci-dessous, le texte en A2 est délimité à la fois par des virgules (",") et des points-virgules (" ;") avec et sans espaces. Pour diviser la chaîne verticalement en rangées par les 4 variations du délimiteur, la formule est la suivante :

    =TEXTESPLIT(A2, , {",",", "," ;"," ;"})

    Ou bien, vous pouvez inclure uniquement une virgule (",") et un point-virgule (" ;") dans le tableau, puis supprimer les espaces supplémentaires à l'aide de la fonction TRIM :

    =TRIM(TEXTSPLIT(A2, , {","," ;"}))

    Fractionner le texte en ignorant les valeurs vides

    Si la chaîne de caractères contient deux ou plusieurs délimiteurs consécutifs sans valeur entre eux, vous pouvez choisir d'ignorer ou non ces valeurs vides. Ce comportement est contrôlé par la quatrième option de la commande ignore_vide qui a la valeur FALSE par défaut.

    Par défaut, la fonction TEXTSPLIT n'ignore pas les valeurs vides. Le comportement par défaut fonctionne bien pour les données structurées comme dans l'exemple ci-dessous.

    Dans cet exemple de tableau, les notes sont manquantes dans certaines chaînes de caractères. La formule TEXTSPLIT avec l'attribut ignore_vide omis ou défini à FALSE gère parfaitement ce cas, en créant une cellule vide pour chaque valeur vide.

    =TEXTESPLIT(A2, ", ")

    Ou

    =TEXTESPLIT(A2, ", ", FALSE)

    En conséquence, toutes les valeurs apparaissent dans les colonnes appropriées.

    Si vos chaînes de caractères contiennent des données homogènes, il peut être judicieux d'ignorer les valeurs vides. Pour cela, définissez l'option ignore_vide à VRAI ou 1.

    Par exemple, pour diviser les chaînes ci-dessous en plaçant chaque compétence dans une cellule séparée sans espace, la formule est la suivante :

    =TEXTESPLIT(A2, ", ", ,TRUE)

    Dans ce cas, les valeurs manquantes entre les délimiteurs consécutifs sont complètement ignorées :

    Fractionnement des cellules sensible à la casse ou non sensible à la casse

    Pour contrôler la sensibilité à la casse du délimiteur, utilisez le cinquième argument, mode de correspondance .

    Par défaut, mode de correspondance est fixé à 0, ce qui rend TEXTSPLIT sensible à la casse .

    Dans cet exemple, les chiffres sont séparés par les lettres minuscules "x" et majuscules "X".

    La formule avec la sensibilité à la casse par défaut n'accepte que le "x" minuscule comme délimiteur :

    =TEXTSPLIT(A2, " x ")

    Veillez à ce que le délimiteur comporte un espace de part et d'autre de la lettre " x " afin d'éviter les espaces avant et arrière dans les résultats.

    Pour désactiver la sensibilité à la casse, vous fournissez 1 pour mode de correspondance pour forcer la formule TEXTSPLIT à ignorer la casse des lettres :

    =TEXTSPLIT(A2, " x ", , ,1)

    Maintenant, toutes les chaînes de caractères sont séparées correctement par l'un ou l'autre des délimiteurs :

    Remplir les valeurs manquantes dans un tableau 2D

    Le dernier argument de la fonction TEXTSPLIT, pad_with Lorsqu'une telle chaîne est divisée en colonnes et en lignes, par défaut, Excel renvoie les erreurs #N/A au lieu des valeurs manquantes pour ne pas fausser la structure d'un tableau à deux dimensions.

    Dans la chaîne ci-dessous, il n'y a pas de "=" ( col_delimiter Pour conserver l'intégrité du tableau résultant, TEXTSPLIT affiche #N/A à côté de "Score".

    Pour rendre le résultat plus convivial, vous pouvez remplacer l'erreur #N/A par la valeur de votre choix. Il suffit de taper la valeur souhaitée dans le champ pad_with argument.

    Dans notre cas, cela pourrait être un trait d'union ("-") :

    =TEXTESPLIT(A2, "=", ", ", , ,"-")

    Ou une chaîne vide ("") :

    =TEXTESPLIT(A2, "=", ", ", , ,"")

    Maintenant que vous avez appris les utilisations pratiques de chaque argument de la fonction TEXTSPLIT, examinons quelques exemples avancés qui peuvent vous aider à relever des défis non triviaux dans vos feuilles de calcul Excel.

    Diviser les dates en jour, mois et année

    Pour diviser une date en unités individuelles, vous devez d'abord convertir la date en texte, car la fonction TEXTSPLIT traite des chaînes de texte alors que les dates Excel sont des chiffres.

    La façon la plus simple de convertir une valeur numérique en texte est d'utiliser la fonction TEXTE, en veillant à fournir un code de format approprié pour votre date.

    Dans notre cas, la formule est la suivante :

    =TEXT(A2, "m/d/yyyy")

    L'étape suivante consiste à imbriquer la fonction ci-dessus dans le 1er argument de TEXTSPLIT et à saisir le délimiteur correspondant dans le 2ème ou le 3ème argument, selon que l'on souhaite séparer des colonnes ou des lignes. col_delimiter argument :

    =TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")

    Diviser les cellules et supprimer certains caractères

    Imaginez ceci : vous avez divisé une longue chaîne de caractères en plusieurs morceaux, mais le tableau résultant contient encore des caractères indésirables, comme les parenthèses dans la capture d'écran ci-dessous :

    =TEXTESPLIT(A2, " ", " ; ")

    Pour supprimer les parenthèses ouvrantes et fermantes à la fois, imbriquez deux fonctions SUBSTITUTE l'une dans l'autre (chacune remplaçant une parenthèse par une chaîne vide) et utilisez la formule TEXTSPLIT pour la fonction texte argument du SUBSTITUTE interne :

    =SUBSTITUER(SUBSTITUER(TEXTSPLIT(A2, " ", " ; "), "(", ""), ")", "")

    Conseil : si le tableau final contient trop de caractères supplémentaires, vous pouvez les purger en utilisant l'une des méthodes décrites dans cet article : Comment supprimer les caractères indésirables dans Excel.

    Fractionnement de chaînes de caractères en sautant certaines valeurs

    Supposons que vous vouliez séparer les chaînes de caractères ci-dessous en 4 colonnes : Prénom , Nom de famille , Score et Résultat Le problème est que certaines chaînes de caractères contiennent le titre "M." ou "Mme", ce qui entraîne des résultats erronés :

    La solution n'est pas évidente mais assez simple :)

    En plus des délimiteurs existants, qui sont un espace (" ") et une virgule et un espace (", "), vous incluez les chaînes de caractères "M." et "Mme" dans le champ de saisie de l'adresse. col_delimiter de sorte que la fonction utilise les titres eux-mêmes pour séparer le texte. Pour ignorer les valeurs vides, vous définissez l'attribut ignore_vide à VRAI.

    =TEXTSPLIT(A2, {" ",", ", "Mr. ", "Ms."}, ,TRUE)

    Maintenant, les résultats sont absolument parfaits !

    Alternatives à TEXTSPLIT

    Dans les versions d'Excel où la fonction TEXTSPLIT n'est pas prise en charge, vous pouvez diviser les chaînes de caractères en utilisant différentes combinaisons de la fonction SEARCH / FIND avec LEFT, RIGHT et MID. En particulier :

    • La fonction SEARCH insensible à la casse ou FIND sensible à la casse détermine la position du délimiteur dans une chaîne de caractères, et
    • Les fonctions LEFT, RIGHT et MID extraient une sous-chaîne avant, après ou entre deux instances du délimiteur.

    Dans notre cas, pour diviser les valeurs séparées par une virgule et un espace les formules sont les suivantes.

    Pour extraire le nom :

    =GAUCHE(A2, SEARCH(",", A2, 1) -1)

    Pour tirer le score :

    =MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)

    Pour obtenir le résultat :

    =RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)

    Pour une explication détaillée de la logique des formules, voir Comment diviser des chaînes de caractères par caractère ou par masque.

    N'oubliez pas que, contrairement à la fonction TEXTSPLIT du tableau dynamique, ces formules suivent l'approche traditionnelle une formule-une cellule. Vous entrez la formule dans la première cellule, puis vous la faites glisser le long de la colonne pour la copier dans les cellules inférieures.

    La capture d'écran ci-dessous montre les résultats :

    Voilà comment diviser des cellules dans Excel 365 en utilisant TEXTSPLIT ou des solutions alternatives dans les versions précédentes. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Fonction TEXTSPLIT pour séparer les chaînes de caractères - exemples de formules (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.