Страницы: 1
RSS
Power Query заменить все ошибки в таблице
 
Как заменить все ошибки в таблице сразу?
В источнике данных есть #ссылка или могут быть другие типы ошибок, соответственно при загрузке в модель данных query не даёт этого сделать из-за наличия ошибок. Хотя на последнем этапе в каждом столбце сделал замену ошибок, но это не помогает. В принципе, если я сделаю в самом начале в каждом столбце замену ошибок, то это сработает. Но столбцов и строк много, хочется найти быстрый способ
Текст запроса:
let
   Источник = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="filepath"]}[Content]{0}[Путь]&"Пример1.xlsx"), null, true),
   данные_Sheet = Источник{[Item="данные",Kind="Sheet"]}[Data],
   #"Удаленные столбцы" = Table.RemoveColumns(данные_Sheet,{"Column1", "Column2", "Column3"}),
   #"Удаленные верхние строки" = Table.Skip(#"Удаленные столбцы",2),
   #"Транспонированная таблица" = Table.Transpose(#"Удаленные верхние строки"),
   #"Объединенные столбцы" = Table.CombineColumns(Table.TransformColumnTypes(#"Транспонированная таблица", {{"Column2", type text}}, "ru-RU"),{"Column1", "Column2"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"Сведено"),
   #"Транспонированная таблица1" = Table.Transpose(#"Объединенные столбцы"),
   #"Повышенные заголовки" = Table.PromoteHeaders(#"Транспонированная таблица1", [PromoteAllScalars=true]),
   #"Другие столбцы с отмененным свертыванием" = Table.UnpivotOtherColumns(#"Повышенные заголовки", {":Фин счет"}, "Атрибут", "Значение"),
   #"Разделить столбец по разделителю" = Table.SplitColumn(#"Другие столбцы с отмененным свертыванием", "Атрибут", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"Атрибут.1", "Атрибут.2"}),
   #"Строки с примененным фильтром" = Table.SelectRows(#"Разделить столбец по разделителю", each ([Атрибут.1] = "бюджет" or [Атрибут.1] = "Прогноз" or [Атрибут.1] = "Факт")),
   #"Замененные ошибки" = Table.ReplaceErrorValues(#"Строки с примененным фильтром", {{"Значение", 0}}),
   #"Замененные ошибки1" = Table.ReplaceErrorValues(#"Замененные ошибки", {{"Атрибут.1", "0"}}),
   #"Замененные ошибки2" = Table.ReplaceErrorValues(#"Замененные ошибки1", {{":Фин счет", 0}}),
   #"Замененные ошибки3" = Table.ReplaceErrorValues(#"Замененные ошибки2", {{"Атрибут.2", "0"}})
in
   #"Замененные ошибки3"
 
Доброе время суток.
Вариант
Код
let
    sourcePath = Excel.CurrentWorkbook(){[Name="filepath"]}[Content]{0}[Путь] & "Пример1.xlsx",
    source = Excel.Workbook(File.Contents(sourcePath), false, false){[Item="данные", Kind="Sheet"]}[Data],
    errorToNull = Table.ReplaceErrorValues(source, List.Transform(Table.ColumnNames(source), each {_, null})),
    skipNulls = Table.SelectRows(errorToNull, each [Column1] <> null),
    setHeader = Table.PromoteHeaders(skipNulls, [PromoteAllScalars=true]),
    unpivot = Table.UnpivotOtherColumns(setHeader, List.Range(Table.ColumnNames(setHeader), 0, 4), "Attribute", "Value")
in
    unpivot
Страницы: 1
Наверх