Определите отчет в PowerBI, где столбцы меняются со временем - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть HTML файл, который генерируется ежедневно. За последние несколько лет мы добавили пару столбцов к таблице HTML в файле. То, что я хочу сделать, это сгенерировать некоторые отчеты, которые изменяются с течением времени на основе этого HTML, поэтому я хочу определить один запрос для отчета, но получить нулевое значение / значение по умолчанию, когда столбец отсутствует в источнике.

У меня есть список доступных дат отчета, и затем я могу добавить копии данных отчета в основной отчет. Однако источник данных не загружается, если столбец отсутствует в более старых отчетах. По сути, я читаю дату из одного HTML файла в качестве входных данных, затем изменяю URL-адрес выборки для строки для источника, чтобы получить исторические данные.

Можно ли создать этот отчет без ретроспективного изменения старых данных и добавление столбца, который отсутствует? Я не мог понять, как это легко сделать.

1 Ответ

0 голосов
/ 24 февраля 2020

Я никогда не делал ничего подобного, но, возможно, что-то подобное поможет. Он проверяет, существует ли столбец, и создает ли он новый столбец со значением по умолчанию.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUUpUitWJVjICspLALGMgK1kpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [AA = _t, BB = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"AA", Int64.Type}, {"BB", type text}}),
    #"Custom1" = if Table.HasColumns(#"Changed Type",{"MissingColumn1"}) = false
        then Table.AddColumn(#"Changed Type","MissingColumn1", each "<n/d>") 
        else #"Changed Type"
    ,#"Custom2" = if Table.HasColumns(#"Custom1",{"MissingColumn2"}) = false
        then Table.AddColumn(#"Custom1","MissingColumn2", each "<n/d>") 
        else #"Custom1"
    ,#"Custom3" = if Table.HasColumns(#"Custom2",{"MissingColumn3"}) = false
        then Table.AddColumn(#"Custom2","MissingColumn3", each "<n/d>") 
        else #"Custom2"
in
    #"Custom3"

Если это подходящее решение, зависит от того, как данные извлекаются из источника.

...