Nettoyer les données en supprimant les sauts de ligne

Pour analyser les données, une partie de nettoyage est indispensable. Il s’agit de supprimer par exemple des espaces à gauche ou droite, d’identifier les caractères spéciaux, de supprimer les éventuelles lignes qui ne doivent pas apparaître dans le tableau et bien d’autres actions… Aujourd’hui je vous propose de supprimer les sauts de ligne.

Pour rappel, pour insérer un saut de ligne à l’intérieur d’une cellule, il faut appuyer sur ALT+ENTREE. Pour l’exemple, nous allons créer le tableau suivant:
saut-de-ligne_01

Selon si vous avez besoin de supprimer les « Saut de ligne » dans Excel ou dans PowerQuery, il existe plusieurs solutions. Dans les exemples qui viennent, nous remplacerons chaque saut de ligne par le caractère pipe | (Alt Gr + 6). C’est un caractère très utile si nous souhaitons par la suite splitter en plusieurs colonnes car  contrairement au ; ou à l’espace,  | n’est pas utilisé dans les phrases courantes. Il nous servira donc principalement de séparateur.

 

1. Excel

Il existe plusieurs solutions pour supprimer les sauts de ligne: soit avec le fenêtre Rechercher et Remplacer, soit en utilisant une formule.

Remplacer avec Ctrl+h

Sélectionnez les cellules que vous souhaitez modifier et taper ensuite sur CTRL + H pour ouvrir la fenêtre Rechercher et Remplacer.

Ensuite, Taper 010 en maintenant la touche ALT enfoncée dans la zone Rechercher.  Cela permet d’écrire le caractère spécial Saut de ligne. Ensuite dans la zone Remplacer, écrire le caractère de remplacement. Pour nous ce sera |.

saut-de-ligne_02

Attention: si vous avez un portable sans clavier numérique, ALT+010 ne fonctionnera pas. Il vous faudra activer le clavier numérique du clavier avec Fn + Verr. si cela est possible dans votre configuration. N’hésitez pas à chercher sur la documentation constructeur de votre clavier d’ordinateur.

Et si vous avez toujours le problème, il y a encore d’autres solutions…

 

Utiliser une formule

Excel propose une fonction qui permet de remplacer un caractère par un autre: SUBSTITUE. Il faut juste savoir que le saut de ligne correspond à la formule Excel suivante: CAR(10). Du coup, il faut remplacer CAR(10) par | dans la cellule cible. Nous utiliserons donc la formule suivante:

=SUBSTITUE(A2;CAR(10); »| »)

Ce qui donne:

saut-de-ligne_03

2. Power Query

Nous allons tout d’abord importer les données dans PowerQuery:

  • Sélectionner les deux cellules
  • Les nommer « SautDeLigne »
  • Données > Récupérer et transformer > A partir d’un tableau

saut-de-ligne_04

astuce-bleuASTUCE: En utilisant les champs nommés, j’évite la création d’un tableau structuré et ainsi ne modifie pas ma feuille Excel.

Vous devriez obtenir ceci:

saut-de-ligne_05

Avec PowerQuery, il n’est pour le moment pas possible de remplacer directement le caractère spécial Saut de ligne. Toutefois, voici un moyen détourné: Nous allons splitter en plusieurs colonnes puis recréer une seule colonne.

saut-de-ligne_06

Ensuite, il faut saisir #(lf) qui signifie saut de ligne dans PowerQuery puis choisir « A chaque occurrence du délimiteur« .

saut-de-ligne_07

Comme vous pouvez le voir, cela ne fonctionne pas vraiment. Avant tout, nous allons supprimer la dernière étape (« Type modifié1 ») en cliquant sur la croix à côté de l’étape.

Pour en savoir plus, allons voir directement dans l’éditeur avancé.

  • Accueil > Requête > Editeur avancé.

Vous verrez ainsi le code suivant:

let
 Source = Excel.CurrentWorkbook(){[Name="SautDeLigne"]}[Content],
 #"Type modifié" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
 #"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Type modifié","Column1",Splitter.SplitTextByDelimiter("#(#)(lf)", QuoteStyle.Csv),{"Column1.1", "Column1.2"})
in
 #"Fractionner la colonne par délimiteur"

Pour corriger notre problème, nous allons devoir modifier plusieurs points.

  • Supprimer d’abord la dernière étape: « Type modifié1 »
  • Ouvrez ensuite l’éditeur de requête: Accueil > Requête > Editeur avancé
  • Remplacer « #(#)(lf) » par « #(lf) »
  • Supprimer « ,{« Column1.1 », « Column1.2″} »

Vous devriez avoir à présent:

let
 Source = Excel.CurrentWorkbook(){[Name="SautDeLigne"]}[Content],
 #"Type modifié" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
 #"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Type modifié","Column1",Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv))
in
 #"Fractionner la colonne par délimiteur"

Vous pouvez ainsi voir le résultat:

saut-de-ligne_08

Ensuite, il nous suffit de regrouper toutes les colonnes en ajoutant un caractère | (ou un espace pour ceux qui le souhaitent).

  • Sélectionner toutes les colonnes
  • Bouton Droit puis Fusionner les colonnes
  • Choisir le séparateur (Ici: personnalisé puis |)
  • Donner un nom à la nouvelle colonne (Ici: Texte)

saut-de-ligne_09

saut-de-ligne_10

Il suffit à présent de charger la requête dans Excel:

  • Accueil > Fermer > Fermer et Charger

saut-de-ligne_11

Conclusion

Comme nous avons pu le voir, des solutions existent mais elles pourraient être meilleures. Je pense que ces évolutions vont très vite faire leur apparition au niveau de PowerQuery car c’est un aspect très pratique dans la partie transformation des données.

astuce-bleuASTUCE: Voici d’autres caractères spéciaux comme nous avons vu pour le saut de ligne, à savoir #(lf).

  • Saut de ligne: #(lf)
  • Retour chariot: #(cr)
  • Tabulation: #(tab)

1 comments On Nettoyer les données en supprimant les sauts de ligne

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Inscrivez-vous et recevez ce livre gratuitement (cliquez sur l'image)