Страницы: 1
RSS
PowerQuery не сохраняет типы данных после Table.ExpandTableColumn?
 
Делал-делал я один запрос, но в итоге вдруг у меня стали вываливаться ошибки. Сначала не понял, почему, но потом разобрался - PowerQuery после группировки (например, суммирование) не сохраняет типы данных, которые я присвоил столбцам в предыдущих шагах.
Например, есть такая табличка:


Запрос PowerQuery:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    ChangedType = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Date1", type date}, {"Sum", Int64.Type}}),
    GroupedRows = Table.Group(ChangedType, {"ID"}, {{"SUM_GROUP", each List.Sum([Sum]), type number}, {"ALL_ROWS", each _, type table}}),
    ExpandedALLROWS = Table.ExpandTableColumn(GroupedRows, "ALL_ROWS", {"ID", "Date1", "Sum"}, {"ALL_ROWS.ID", "ALL_ROWS.Sum", "ALL_ROWS.Date1"})
in
    ExpandedALLROWS

На шаге ChangedType всё ОК:




Но на шаге ExpandedALLROWS типы данных слетают:



Это никак не лечится? Или придётся в конце заново изменять типы? Или лучше сначала вообще не изменять типы, а изменть их только в конце?
Изменено: SuperCat - 26.07.2019 22:48:07
There is no knowledge that is not power
 
К столбцам типы не наследуются явно, но данные то свои типы не меняют и их наследуют корректно. В PQ не разу не натыкался на ошибки из-за того, что не правильно задан тип столбца. Это влияет только на вывод итогов например в модель данных. Внутри запроса косяки могут быть только если сами данные не того типа, который вы ожидаете (скажем функция работает с текстом, а вы ей дали на обработку число).
Цитата
SuperCat написал:
Или лучше сначала вообще не изменять типы
Всегда удаляю шаги с автотипизированием и преобразование типов произвожу либо в формулах расчетных столбцов (типа Text.From, Duration.From) либо в конце запроса перед выводом результата.
Иногда использую типизирование с целью выявить ошибочные данные и зачистить строки.
Вот горшок пустой, он предмет простой...
Страницы: 1
Читают тему (гостей: 1)
Наверх