2016-04-29 6 views
1

Diese andere Power Query question and answer bietet eine Lösung zum Aufteilen von zeichenbegrenzten Textdateien in Spalten basierend auf Spaltenzeichenanzahlbreiten.Power Query - Spaltenspalte nach variabler Feldlänge - Berücksichtigung von Nullwerten

Aber es berücksichtigt keine Nullen. Wenn ein Nullwert gefunden wird, wird in einer der Spalten rechts ein Fehler angezeigt. Ich kann nicht genau sagen, was genau passiert. Der Fehler ist

An error occurred in the ‘SplitText’ query. Expression.Error: The 'count' argument is out of range. 

der Code für Split-Funktion ist:

let 
    SplitText = (text, lengths) => 
    let 
     LengthsCount = List.Count(lengths), 
     // Keep track of the index in the lengths list and the position in the text to take the next characters from. Use this information to get the next segment and put it into a list. 
     Split = List.Generate(() => {0, 0}, each _{0} < LengthsCount, each {_{0} + 1, _{1} + lengths{_{0}}}, each Text.Range(text, _{1}, lengths{_{0}})) 
    in 
     Split, 
    // Convert the list to a record to 
    ListToRecord = (text, lengths) => 
    let 
     List = SplitText(text, lengths), 
     Record = Record.FromList(List, List.Transform({1 .. List.Count(List)}, each Number.ToText(_))) 
    in 
     Record 
in 
    ListToRecord 

in der Tabelle Dann, eine benutzerdefinierte Spalte hinzufügen, die diese Formel verwendet:

each SplitText([Column1], {4, 2, 5, 3}) 

ich Excel bin mit 2010 64 bit und Power Query Version: 2.29.4217.1861

Wie ändert man dies, um Nullen zu berücksichtigen?

Antwort

1
Split = List.Generate(() => {0, 0}, each _{0} < LengthsCount, each {_{0} + 1, _{1} + lengths{_{0}}}, each try Text.Range(text, _{1}, lengths{_{0}}) otherwise null) 
Verwandte Themen