Excel : diviser une chaîne de caractères par un délimiteur ou un motif, séparer le texte et les chiffres

  • Partage Ça
Michael Brown

Vous apprendrez comment séparer le texte par une virgule, un espace ou tout autre délimiteur, et comment diviser les chaînes de caractères en texte et en chiffres. .

La division du texte d'une cellule en plusieurs cellules est une tâche à laquelle tous les utilisateurs d'Excel sont confrontés de temps à autre. Dans l'un de nos articles précédents, nous avons expliqué comment diviser des cellules dans Excel à l'aide de la fonction Texte en colonne et Flash Fill Aujourd'hui, nous allons examiner en détail la manière dont vous pouvez diviser des chaînes de caractères à l'aide de formules et de l'outil d'analyse des données. Texte fractionné outil.

    Comment diviser du texte dans Excel à l'aide de formules

    Pour diviser une chaîne de caractères dans Excel, vous utilisez généralement la fonction LEFT, RIGHT ou MID en combinaison avec FIND ou SEARCH. À première vue, certaines formules peuvent sembler complexes, mais la logique est en fait assez simple, et les exemples suivants vous donneront quelques indices.

    Séparer une chaîne de caractères par une virgule, un point-virgule, une barre oblique, un tiret ou tout autre délimiteur.

    Lorsque vous divisez des cellules dans Excel, la clé est de localiser la position du délimiteur dans la chaîne de texte. En fonction de votre tâche, vous pouvez utiliser la fonction SEARCH insensible à la casse ou la fonction FIND sensible à la casse. Une fois que vous connaissez la position du délimiteur, utilisez la fonction RIGHT, LEFT ou MID pour extraire la partie correspondante de la chaîne de texte. Pour mieux comprendre, considérons ce qui suitexemple.

    Supposons que vous ayez une liste de SKUs de la marque Article-Couleur-Taille et vous voulez diviser la colonne en 3 colonnes distinctes :

    1. Pour extraire le nom de l'article (tous les caractères avant le premier tiret), insérez la formule suivante dans B2, puis copiez-la le long de la colonne :

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

      Dans cette formule, SEARCH détermine la position du premier tiret ("-") dans la chaîne, et la fonction LEFT extrait tous les caractères situés à sa gauche (vous soustrayez 1 à la position du tiret car vous ne voulez pas extraire le tiret lui-même).

    2. Pour extraire le couleur (tous les caractères entre le premier et le deuxième tiret), saisissez la formule suivante dans C2, puis copiez-la dans d'autres cellules :

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

      Dans cette formule, nous utilisons la fonction MID d'Excel pour extraire le texte de A2.

      La position de départ et le nombre de caractères à extraire sont calculés à l'aide de 4 fonctions de RECHERCHE différentes :

      • Numéro de départ est la position du premier trait d'union +1 :

        SEARCH("-",A2) + 1

      • Nombre de caractères à extraire : la différence entre la position du 2ème trait d'union et du 1er trait d'union, moins 1 :

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Pour extraire le taille (tous les caractères après le 3ème trait d'union), entrez la formule suivante dans D2 :

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

      Dans cette formule, la fonction LEN renvoie la longueur totale de la chaîne, à laquelle vous soustrayez la position du 2ème tiret. La différence est le nombre de caractères après le 2ème tiret, et la fonction RIGHT les extrait.

    De la même manière, vous pouvez séparer une colonne par n'importe quel autre caractère. Il suffit de remplacer "-" par le délimiteur requis, par exemple espace (" "), virgule (","), barre oblique ("/"), côlon (" ;"), point-virgule (" ;"), et ainsi de suite.

    Conseil : dans les formules ci-dessus, +1 et -1 correspondent au nombre de caractères du délimiteur. Dans cet exemple, il s'agit d'un tiret (1 caractère). Si votre délimiteur est composé de 2 caractères, par exemple une virgule et un espace, fournissez uniquement la virgule (",") à la fonction SEARCH et utilisez +2 et -2 au lieu de +1 et -1.

    Comment séparer une chaîne de caractères par un saut de ligne dans Excel

    Pour séparer le texte par un espace, utilisez des formules similaires à celles présentées dans l'exemple précédent, à la seule différence que vous aurez besoin de la fonction CHAR pour fournir le caractère de saut de ligne, car vous ne pouvez pas le saisir directement dans la formule.

    Supposons que les cellules que vous voulez diviser ressemblent à ceci :

    Reprenez les formules de l'exemple précédent et remplacez le tiret ("-") par CHAR(10), où 10 est le code ASCII du saut de ligne.

    • Pour extraire le nom de l'article :

      =LEFT(A2, SEARCH(CHAR(10),A2,1)-1)

    • Pour extraire le couleur :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Pour extraire le taille :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1)))

    Et voici à quoi ressemble le résultat :

    Comment diviser du texte et des chiffres dans Excel

    Pour commencer, il n'existe pas de solution universelle qui fonctionnerait pour toutes les chaînes alphanumériques. La formule à utiliser dépend du modèle de chaîne particulier. Vous trouverez ci-dessous les formules pour les deux scénarios les plus courants.

    Séparation de la chaîne de caractères du motif 'texte + numéro'.

    Supposons que vous disposez d'une colonne de chaînes de caractères combinant du texte et des chiffres, où un chiffre suit toujours le texte. Vous souhaitez rompre les chaînes de caractères d'origine afin que le texte et les chiffres apparaissent dans des cellules distinctes, comme ceci :

    Ce résultat peut être obtenu de deux manières différentes.

    Méthode 1 : Comptez les chiffres et extrayez autant de caractères.

    La façon la plus simple de diviser une chaîne de texte où le numéro vient après le texte est la suivante :

    A extraire les numéros vous recherchez dans la chaîne tous les chiffres possibles de 0 à 9, vous obtenez le total des chiffres et vous renvoyez le nombre de caractères correspondant à la fin de la chaîne.

    Avec la chaîne originale en A2, la formule est la suivante :

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    A extraire le texte Pour calculer le nombre de caractères de texte que contient la chaîne, vous devez soustraire le nombre de chiffres extraits (C2) de la longueur totale de la chaîne d'origine (A2). Ensuite, vous utilisez la fonction LEFT pour renvoyer le nombre de caractères depuis le début de la chaîne.

    =GAUCHE(A2,LEN(A2)-LEN(C2))

    Où A2 est la chaîne originale, et C2 est le numéro extrait, comme indiqué dans la capture d'écran :

    Méthode 2 : Trouver la position du 1er chiffre dans une chaîne de caractères

    Une autre solution consisterait à utiliser la formule suivante pour déterminer la position du premier chiffre dans la chaîne :

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Une fois la position du premier chiffre trouvée, vous pouvez diviser le texte et les chiffres en utilisant des formules très simples de GAUCHE et DROITE.

    Pour extraire texte :

    =GAUCHE(A2, B2-1)

    Pour extraire numéro :

    =DROITE(A2, LEN(A2)-B2+1)

    Où A2 est la chaîne originale, et B2 est la position du premier chiffre.

    Pour se débarrasser de la colonne auxiliaire qui maintient la position du premier chiffre, vous pouvez intégrer la formule MIN dans les fonctions LEFT et RIGHT :

    Formule d'extraction texte :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Formule d'extraction numéros :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Séparer la chaîne de caractères du motif 'nombre + texte'.

    Si vous divisez des cellules où le texte apparaît après le numéro, vous pouvez extraire les numéros avec la formule suivante :

    =LEFT(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, ""))))

    La formule est similaire à celle de l'exemple précédent, sauf que vous utilisez la fonction LEFT au lieu de RIGHT pour obtenir le nombre du côté gauche de la chaîne.

    Une fois que vous avez les chiffres, extrait texte en soustrayant le nombre de chiffres de la longueur totale de la chaîne originale :

    =DROIT(A2,LEN(A2)-LEN(B2))

    Où A2 est la chaîne originale et B2 est le numéro extrait, comme le montre la capture d'écran ci-dessous :

    Conseil. Pour obtenir le numéro de n'importe quelle position dans la chaîne de texte utilisez cette formule ou l'outil d'extraction.

    Comme vous le voyez, les formules sont loin d'être évidentes, et vous pouvez donc télécharger le classeur Excel d'exemples de cellules fractionnées pour les examiner de plus près.

    Si la compréhension des arcanes des formules Excel n'est pas votre occupation favorite, vous aimerez peut-être la méthode visuelle de division des cellules dans Excel, qui est démontrée dans la partie suivante de ce tutoriel.

    Comment diviser des cellules dans Excel avec l'outil Texte divisé

    Une autre façon de diviser une colonne dans Excel est d'utiliser la fonction Fractionner le texte incluse dans notre Ultimate Suite for Excel, qui offre les options suivantes :

      Pour clarifier les choses, examinons de plus près chaque option, l'une après l'autre.

      Séparation des cellules par caractère

      Choisissez cette option lorsque vous voulez diviser le contenu de la cellule à chaque occurrence du caractère spécifié .

      Pour cet exemple, prenons les chaînes de caractères de l'option Article-Couleur-Taille que nous avons utilisé dans la première partie de ce tutoriel. Comme vous vous en souvenez peut-être, nous les avons séparés en 3 colonnes différentes à l'aide de 3 formules différentes. Voici comment vous pouvez obtenir le même résultat en 2 étapes rapides :

      1. En supposant que vous avez installé Ultimate Suite, sélectionnez les cellules à diviser, puis cliquez sur le bouton de la souris. Texte fractionné sur l'icône Ablebits Data onglet.

      2. Le site Texte fractionné s'ouvre sur le côté droit de votre fenêtre Excel, et vous effectuez les opérations suivantes :
        • Élargir le Fractionnement par caractère et sélectionnez l'un des délimiteurs prédéfinis ou tapez tout autre caractère dans le groupe Personnalisé boîte.
        • Choisissez de diviser les cellules en colonnes ou en lignes.
        • Examinez le résultat sous la rubrique Prévisualisation et cliquez sur le bouton Split bouton.

      Conseil : si une cellule comporte plusieurs délimiteurs successifs (par exemple, plus d'un caractère d'espacement), sélectionnez l'option Traiter les délimiteurs consécutifs comme un seul boîte.

      La tâche qui nécessitait 3 formules et 5 fonctions différentes ne prend plus que quelques secondes et un clic de bouton.

      Séparation des cellules par chaîne de caractères

      Cette option vous permet de diviser les chaînes de caractères en utilisant toute combinaison de caractères Techniquement, vous divisez une chaîne en plusieurs parties en utilisant une ou plusieurs sous-chaînes différentes comme limites de chaque partie.

      Par exemple, pour diviser une phrase par les conjonctions " et " et " ou ", développez le Fractionnement par cordes et saisissez les chaînes de délimitation, une par ligne :

      En conséquence, la phrase source est séparée à chaque occurrence de chaque délimiteur :

      Conseil : les caractères "ou" et "et" peuvent souvent faire partie de mots comme "orange" ou "Andalousie". espace avant et après et et ou pour éviter de diviser les mots.

      Et voici un autre exemple concret : supposons que vous ayez importé une colonne de dates d'une source externe, qui se présente comme suit :

      5.1.2016 12:20

      5.2.2016 14:50

      Ce format n'est pas conventionnel pour Excel et, par conséquent, aucune des fonctions Date ne reconnaîtrait les éléments de la date ou de l'heure. Pour répartir le jour, le mois, l'année, les heures et les minutes dans des cellules distinctes, saisissez les caractères suivants dans le champ Fractionnement par cordes boîte :

      • Point (.) pour séparer le jour, le mois et l'année
      • Deux points ( :) pour séparer les heures et les minutes
      • Espace pour séparer la date et l'heure

      Appuyez sur la touche Split et vous obtiendrez immédiatement le résultat :

      Division des cellules par masque (motif)

      Séparer une cellule par un masque revient à diviser une chaîne de caractères sur la base d'un modèle .

      Cette option s'avère très pratique lorsque vous devez diviser une liste de chaînes homogènes en certains éléments, ou sous-chaînes. La complication réside dans le fait que le texte source ne peut pas être divisé à chaque occurrence d'un délimiteur donné, mais seulement à une ou plusieurs occurrences spécifiques. L'exemple suivant rendra les choses plus faciles à comprendre.

      Supposons que vous ayez une liste de chaînes de caractères extraites d'un fichier journal :

      Vous ne pouvez pas utiliser un espace comme délimiteur car il y a des espaces entre la date et l'heure, qui doivent apparaître dans une seule colonne, et des espaces dans le texte de l'exception, qui doit également apparaître dans une seule colonne.

      La solution consiste à diviser une chaîne de caractères par le masque suivant : *ERROR:*Exception:*

      Où l'astérisque (*) représente un nombre quelconque de caractères.

      Les deux points ( :) sont inclus dans les délimiteurs parce que nous ne voulons pas qu'ils apparaissent dans les cellules résultantes.

      Et maintenant, élargissez le Fractionnement par masque section sur le Texte fractionné tapez le masque dans le champ Entrez les délimiteurs et cliquez sur Split :

      Le résultat ressemblera à ceci :

      Remarque : le fractionnement de la chaîne par masque est sensible à la casse Veillez donc à taper les caractères du masque exactement comme ils apparaissent dans les chaînes sources.

      Le grand avantage de cette méthode est la flexibilité. Par exemple, si toutes les chaînes originales ont des valeurs de date et d'heure, et que vous voulez qu'elles apparaissent dans des colonnes différentes, utilisez ce masque :

      * *ERROR:*Exception:*

      Traduit en anglais simple, le masque demande à l'add-in de diviser les chaînes originales en 4 parties :

      • Tous les caractères avant le 1er espace trouvé dans la chaîne (date)
      • Caractères entre le 1er espace et le mot ERROR : (temps)
      • Texte entre ERROR : et Exception : (code d'erreur)
      • Tout ce qui vient après Exception : (texte d'exception)

      J'espère que vous avez apprécié cette méthode simple et rapide pour diviser des chaînes de caractères dans Excel. Si vous êtes curieux de l'essayer, une version d'évaluation est disponible en téléchargement ci-dessous. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

      Téléchargements disponibles

      Formules de cellules fractionnées d'Excel (fichier .xlsx)

      Ultimate Suite 14 jours version entièrement fonctionnelle (fichier .exe)

      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.