XL 2019 Power Query - Implémenter Splitter.SplitTextByPositions pour fractionner une colonne de longueur variable en 3 colonnes

Flx1er

XLDnaute Occasionnel
Bonjour,
Je désire fractionner la colonne PV dynamiquement en 3 colonnes respectivement nommées DA, CS, CC. avec la fonction Splitter.SplitTextByPositions.
La colonne PV est de longueur différente :
  • La longueur de PV est égal à = Nb DA*Taille DA & Nb CS*Taille CS & Nb CC*Taille CC.
  • Nb DA, Nb CS et NB CC pouvant varier entre 0 et 99.
  • Les cellules relativent à "Taille DA", "Taille CS" et "Taille CC" sont nommées
Mais je n'arrive pas à implémenter Splitter.SplitTextByPositions avec les données des tailles et nombres

Sur le fichier joint, la feuille
  • "Source" possède les informations pour effectuer ce fractionnement,
  • "exemple avec 0 50 100" est un exemple avec un fractionnement purement arbitraire :
    = Table.SplitColumn(#"Type modifié", "PV", Splitter.SplitTextByPositions({0, 50, 100}), {"DA", "CS", "CC"})
  • "Résultat" est le résultat attendu
En vous remerciant
Cordialement
 

Pièces jointes

  • Fractionner.xlsx
    22.4 KB · Affichages: 7

WTF

XLDnaute Impliqué
Bonjour Flx1er,

En utilisant la fonction "Colonne à partir d'exemple", j'obtient la fonction suivante qui semble fonctionner :

VB:
= Table.AddColumn(#"Type modifié", "Personnalisé", each let splitPV = Splitter.SplitTextByDelimiter("    ", QuoteStyle.None)([PV]) in Text.Combine({Text.Reverse(Text.Middle(Text.Reverse(splitPV{0}?), 9)), Text.Middle(splitPV{2}?, 34, 1)}), type text)

Ca n'est pas possible de le faire pour les autres colonnes car 3 lignes ne sont pas suffisantes pour que Powerquery en détermine une règle probante ; mais tu peux essayer sur ta base de données
 

Statistiques des forums

Discussions
312 867
Messages
2 093 041
Membres
105 618
dernier inscrit
albertdu13