J'ai beau chercher, je ne trouve pas comment extraire - en n'en prenant qu'une de chaque - des chaines qui se répètent dans UNE seule et même cellule.
Un exemple sera plus clair : j'ai une cellule contenant cette chaine de caractère :PR-PR-PR-PR-CM-CM-ST-ST-ST-
Ce que j'aimerais, c'est de réduire cette chaîne à UNE seule occurrence de chaque répétition. Et donc : PR-CM-ST-(avec ou sans les tirets, c'est égal).
LA 2ème étape serait d'extraire d'une manière ou d'une autre la quantité de chaque référence, du genre : 4PR-2CM-3ST- (avec ou sans tirets) dans une chaine ou dans des cellules séparées). Le mieux pour exploiter ces données ensuite serait sans doute 6 cellules séparées : PR 4 CM 2 ST 3
Ma seule contrainte est que tout doit rester sur la même ligne, car l'opération se répète ensuite à chaque ligne avec de nouvelles références.
Je n'ai pas encore de fichier construit à vous montrer hélas, je veux d'abord voir si je peux résoudre ce problème.
Bonjour le fil, @Amanite n'a pas indiqué quelle était sa version d'Excel.
Pas sûr qu les formules proposées qui me semblent être Office 365 soient disponibles sur sa version, çà ne l'est pas sur Excel 2016
Bonjour le fil, @Amanite n'a pas indiqué quelle était sa version d'Excel.
Pas sûr qu les formules proposées qui me semblent être Office 365 soient disponibles sur sa version, çà ne l'est pas sur Excel 2016
Recopier les formules des cellules en B2, C2 et D2 vers le bas.
en B2 : =JOINDRE.TEXTE("-";VRAI; UNIQUE(FRACTIONNER.TEXTE(A2;"-");VRAI))
en C2 (pour un résultat concaténé) : =LET(Sour; "-"&SUBSTITUE(A2;"-";"--")&"-";Uniq;UNIQUE(FRACTIONNER.TEXTE(A2;;"-";VRAI));Nbre;(NBCAR(Sour)-NBCAR(SUBSTITUE(Sour;"-" & Uniq & "-";"")))/(2+NBCAR(Uniq));JOINDRE.TEXTE(", ";VRAI;Uniq & " " & Nbre))
en D2 pour un résultat par cellule : =LET(Sour; "-"&SUBSTITUE(A2;"-";"--")&"-";Uniq;UNIQUE(FRACTIONNER.TEXTE(A2;;"-";VRAI));Nbre;(NBCAR(Sour)-NBCAR(SUBSTITUE(Sour;"-" & Uniq & "-";"")))/(2+NBCAR(Uniq));TRANSPOSE(Uniq & " " & Nbre))
Je ne veux pas tout savoir, je m'étonnais que tu ne disposes pas de "lambda" alors que tu indiques "Microsoft 365". Dans ce cas, mieux vaut indiquer la plus ancienne version.
Daniel