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
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
 

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

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
 

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

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko