Итерация по элементам таблицы и списка и изменение значения в power bi

#powerbi #powerquery

#powerbi #powerquery

Вопрос:

У меня есть таблица, где каждый элемент представляет собой список. Как изменить все поля, значение которых равно null, на «N / A» во всех списках.

 let 
    Source = Json.Document(Web.Contents("127.0.0.1:9099/query" amp; "?db=OP" amp; "amp;q=select * from data where time >= 1577836800000000000 and time < 1577846800000000000")), 
     results = Source[results], 
     results1 = results{0}, 
     series = results1[series], 
     series1 = series{0}, 
     values = series1[values], 
     #"Converted to Table" = Table.FromList(values, Splitter.SplitByNothing(), null, null, ExtraValues.Error), 
     #"Filter Table" = Table.SelectRows(#"Converted to Table", List.Select(each _ = null) )
  

Комментарии:

1. пусть Source = Json. Документ(Web.Contents(» 127.0.0.1:9099 /запрос » amp; «?db=OP» amp; «amp;q= выбрать * из данных, где время> = 1577836800000000000 и время <1577846800000000000″)), результаты = Источник [результаты], результаты1 = результаты {0}, серия = результаты1[серия], series1 = серия {0}, значения = series1[значения], #»Преобразовано в таблицу» = Таблица. Из списка (значения, разделитель. SplitByNothing(), null, null, дополнительные значения. Ошибка), #»Таблица фильтров» = Таблица. SelectRows(#»Преобразовано в таблицу», List.Select(каждое _ = null) )

2. Пожалуйста, отредактируйте свой пост, а не помещайте этот запрос в комментарий.

Ответ №1:

Одним из способов может быть использование Table.ReplaceValue в сочетании с Replacer.ReplaceValue .

Небольшой пример приведен ниже:

 let
    someTable = Table.FromColumns({
        {"", null, 0},
        {1, null, 2}
    }, type table [a = any, b = any]),
    replaced = Table.ReplaceValue(someTable, null, "N/A", Replacer.ReplaceValue, {"a", "b"})
in
    replaced
  

что выводит меня из этого:

Входная таблица

для этого:

Выходная таблица

Вы можете someTable заменить своим собственным именем таблицы и {"a", "b"} заменить именами столбцов, которые вам нужно обновить.