Если я правильно понял, month
во входной строке не дополняется нулями (поэтому длина входных строк равна 7 или 8).
Возможно, стоит создатьмаленькая функция, подобная приведенной ниже, которая будет обрабатывать переменную длину, а затем попытаться проанализировать дату на основе предполагаемых позиций символов.
ParseDate = (someText as text) as date =>
let
zeroPadded = Text.End("0" & someText, 8),
yearParsed = Text.End(zeroPadded, 4),
monthParsed = Text.Start(zeroPadded, 2),
dayParsed = Text.Middle(zeroPadded, 2, 2),
dateParsed = #date(Number.From(yearParsed), Number.From(monthParsed), Number.From(dayParsed))
in dateParsed,
Затем ее можно вызвать при преобразовании существующего столбца или добавлении нового столбца.,Чтобы дать вам пример:
let
ParseDate = (someText as text) as date =>
let
zeroPadded = Text.End("0" & someText, 8),
yearParsed = Text.End(zeroPadded, 4),
monthParsed = Text.Start(zeroPadded, 2),
dayParsed = Text.Middle(zeroPadded, 2, 2),
dateParsed = #date(Number.From(yearParsed), Number.From(monthParsed), Number.From(dayParsed))
in dateParsed,
someTable = Table.FromColumns({{"1022018", "05242019", "12282026"}}, type table [toParse = text]),
transformedColumn = Table.TransformColumns(someTable, {{"toParse", ParseDate, type date}}),
addedColumn = Table.AddColumn(someTable, "parsed", each ParseDate([toParse]), type date)
in
addedColumn
, который дает: