Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
let
A =Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
B =Table.TransformColumns(A,{"Column1",each[
a =Text.Split(_," "),
b =List.PositionOf(List.Transform(a,(x)=>Text.Length(x)),7,Occurrence.Last),
c =List.Range(a,b +1,2),
d =ifText.Length(c{0})=1thenText.Combine(c," ")else c{0}][d]})in
B
Hello
une fois importé ton tableau dans PQ, tu as une option de fractionnement "Texte vers Non texte"
ca te permet déjà d'éliminer le texte de début..
après.. pour la suite...
let
A =Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
B =Table.TransformColumns(A,{"Column1",each[
a =Text.Split(_," "),
b =List.PositionOf(List.Transform(a,(x)=>Text.Length(x)),7,Occurrence.Last),
c =List.Range(a,b +1,2),
d =ifText.Length(c{0})=1thenText.Combine(c," ")else c{0}][d]})in
B
Avec cette fonction VBA c'est classique et très simple :
VB:
Function Extract$(c As Range)Dim i%For i =1To Len(c)With c.Characters(i,1)If.Font.Color <> vbBlack Then Extract = Extract &.Text
EndWithNextEndFunction
Explication du motif "\d* \d+,\d+"
on capture ce qui commence par 0 ou plus chiffre suivi d'un espace suivi d'un ou plus chiffres suivi d'une virgule suivi d'un ou plus chiffre. Le Global à True c'est pour capturer toutes les occurrences.
le matches(matches.Count - 2).Value c'est pour capturer l'avant-dernière occurrence.
Je trouve les mêmes résultats que le VBA de job75.
Ami calmant, J.P
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD