Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Extraire les données d'une cellule entre 2 occurrences et sans doublons

Tidjyphenom

XLDnaute Nouveau
Bonjour, je m'y connais pas vraiment sur Excel et les tableurs plus généralement. Alors je fais appel à votre aimable aide.
Je dispose d'une colonne A ayant des données de ce type :

------------------------------------------------------------------------------------------------------------------------------------------------
Categorie 1|Categorie 2|Categorie 3|Categorie 3 > Sous-categorie 3-1|Categorie 4 > Sous-categorie 4-1 > Sous-categorie 4-1-1
------------------------------------------------------------------------------------------------------------------------------------------------

Sur ces lignes je souhaite récupérer le nom de chaque catégorie mais sans doublon et toujours séparé par des pipe ( | ) pour finalement obtenir le résultat suivant :

-------------------------------------------------------------------------------------------
Categorie 1|Categorie 2|Categorie 3|Categorie 4|Categorie 4-1|Categorie 4-1-1
-------------------------------------------------------------------------------------------

J'ai tenté différentes formules mais pour l'instant la seule chose que je réussi à faire est de récupérer la catégorie à droite de la dernière occurence du caractère ">" via cette formule :
=SUPPRESPACE(DROITE(A2;NBCAR(A2)-TROUVE("#";SUBSTITUE(A2;">";"#";NBCAR(A2)-NBCAR(SUBSTITUE(A2;">";""))))))

J'utilise Excel 365 en français donc le nom des formules est en français mais si la solution est en anglais je pourrais naturellement l'adapter.

Merci par avance à celle ou celui qui pourra se pencher sur mon problème.
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Et bienvenue sur le forum
Pourrais-tu joindre un fichier exemple, représentatif, et exempt de toute information personnelle et/ou confidentielle?
Ce sera plus simple pour te donner une réponse adaptée.
@ te relire
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Sans fichier joint difficile de te venir en aide. Un début de piste en passant par power query et joindre.texte().

JHA
 

Pièces jointes

  • Classeur Extraire données.xlsx
    17.8 KB · Affichages: 5

Cousinhub

XLDnaute Barbatruc
Bonsoir,
@ Corinnez
Votre 1ère intervention, sans formule de politesse, (un forum, c'est comme partout, quand on y entre, on dit "Bonjour"), m'a déjà laissé perplexe... (d'autant plus que le sujet était résolu....)
Ici, toujours avec la même faconde, vous essayez d'apporter une "amélioration"...
Sans vraiment rien améliorer... (sans ajout de colonne, PQ sait le faire...)
Bienvenue dans ce forum, mais, déjà, commencez par lire la charte...
Et votre maîtrise de Power Query ne pourra que profiter aux différents demandeurs
Bonne soirée
 

Corinnez

XLDnaute Nouveau
Bonsoir à tous,

Vraiment désolée. C’est ma première fois sur un forum, de ce côté… je supposais que le partage consistait à trouver l’idée la plus facile à mettre en œuvre.

A partir de cette formule d’extraction de caractères il est aussi possible d’utiliser les fonctions filtre et unique dans Excel.

bonne soirée et bonne continuation
 

Cousinhub

XLDnaute Barbatruc
Re-,
Mais pas de soucis...
Cependant, argumenter en proposant des fichiers "réponse", c'est un plus (mais sans fichier exemple d'un demandeur, c'est beaucoup moins facile...)
Et un forum est bien évidemment "open"
Bienvenue (bis)
 

Tidjyphenom

XLDnaute Nouveau
Merci pour vos réponses. Voici en pièce jointe un exemple de fichier.
Le contexte c'est que mon fichier représente une liste de catégories pour chaque article. Chaque article est représenté par une ligne de mon fichier. Chaque cellule permet d'obtenir la liste des catégories et sous-catégories pour l'article en question. Ici dans le fichier vous avez une colonne "colonne_categories" et 5 lignes (5 articles). Par exemple pour le 1er article 2ème ligne du fichier), les catégories extraites devront être :

Catégorie 1, Catégorie 2 et Catégorie 6

Comme vous l'aurez compris le simbole pipe ( | ) permet de voir qu'on a 3 jeu de catégories et le symbole ( > ) permet de distinguer que Catégorie 6 est une sous-catégorie de Catégorie 1

Le résultat que je souhaite obtenir c'est une nouvelle colonne avec :

Catégorie 1|Catégorie 2|Catégorie 6
Catégorie 1|Catégorie 2|Catégorie 3|Catégorie 4|Catégorie 5
etc...

Pour faire simple je dois supprimer les "|" et les ">" mais aussi les doublons de catégories dans chaque cellule pour au final extraire toutes mes catégories séparées par des "|" a àjouter de nouveau donc.
 

Pièces jointes

  • catégories_articles.xlsx
    8.7 KB · Affichages: 10

Cousinhub

XLDnaute Barbatruc
Bonjour,
Voici une solution Power Query
Clic droit dans une cellule de la requête, "Actualiser", pour mettre à jour
Bonne journée
 

Pièces jointes

  • Copie de catégories_articles.xlsx
    17.4 KB · Affichages: 14
Réactions: JHA

JHA

XLDnaute Barbatruc
Bonjour à tous,
@bhbh

Je suis sur Excel 2019, peux-tu m'éclairer car lorsque je fractionne la colonne par délimiteur, il ajoute les colonnes sur la droite.
Sur ta proposition, le fractionnement se fait sur la même colonne avec "Table.ExpandListColumn".

Cela est-il disponible en natif sur la version 2019 ou faut-il passer par l'éditeur de texte.
Sinon comment le refaire sans mettre ces colonnes à droite.


JHA
 

Cousinhub

XLDnaute Barbatruc
Hello Jacky,
Lorsque tu cliques sur le bouton "Fractionner la colonne", il y a un choix "options avancées".
Lorsque tu développes en cliquant sur la petite flèche, tu as cette option "Colonne" par défaut.
Il suffit de sélectionnes "Lignes" pour développer en "lignes"
Bonne journée
 
Réactions: JHA

Tidjyphenom

XLDnaute Nouveau
Bonjour,
Voici une solution Power Query
Clic droit dans une cellule de la requête, "Actualiser", pour mettre à jour
Bonne journée
Merci bhbh. Ça semble être la solution que je recherche. Comme dit, etant une bille sur Excel sur Excel, je ne connais pas vraiment le logiciel. Je viens de découvrir ce qu'étais Power Query. En revanche j'ai pas compris comment reporter ta solution dans mon fichier excel. Pourrais tu m'aiguiller s'il te plaît ou si quelqu'un passe dans le coin. Merci.
 

Cousinhub

XLDnaute Barbatruc
Re-,
Expliquer PQ en une discussion serait utopique...
Cependant, afin d'adapter la solution à ton classeur réel, joindre un classeur bidon, mais avec la structure exacte de ton classeur de travail, (surtout s'il y a plusieurs colonnes), et mettre le résultat voulu dans un autre onglet, par exemple.
@ te relire avec un nouveau fichier
 

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
Sous Excel pour Microsoft 365, en B2 :
VB:
=JOINDRE.TEXTE(" | ";;TRIER(UNIQUE(SUPPRESPACE(FRACTIONNER.TEXTE(A2;{"|".">"}));1);;;1))
@ tirer vers le bas

J'ai même trié les catégories, tu peux toutefois annuler le tri si tu veux.

Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…