Отфильтруйте один запрос Power BI на основе таблицы Excel - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть таблица с именем "_Vendor_List" в электронной таблице, и я использую ее для фильтрации запросов в той таблице, которую я использую для аналитики.

Точно так же я хотел бы отфильтровать тот же запрос в Power BI на основе этой же таблицы. Это работает в Excel, но я не уверен, что / как меняется синтаксис в Power BI для запроса.

Мой код Excel Power Query:

let
    Source = Sql.Database("MyDatabase", "MY_DATA"),
    ExcelTable = Excel.CurrentWorkbook(){[Name="_Vendor_List"]}[Content],
    #"PerformanceTable" = Source{[Schema="dbo",Item="PerformanceTable"]}[Data],
    Filter = Table.SelectRows(#"PerformanceTable", each List.Contains(ExcelTable[VENDOR], [VENDOR_CODE]))
in
    Filter

Теперь я Не уверен, что CurrentWorkbook можно использовать в Power Bi, поэтому мой вопрос: как мне изменить это, чтобы теперь фильтровать тот же запрос в Power BI, используя ту же таблицу (которая также будет импортирована).

1 Ответ

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

Хорошо, я выяснил, какой должен быть синтаксис, чтобы этот фильтр работал. Я не мог использовать CurrentWorkbook, потому что отчет Power BI не является рабочей книгой; тем не менее, вы можете ссылаться на Excel.Workbook до тех пор, пока вы ссылаетесь на местоположение.

Единственное, что я хотел бы сделать - это обратиться к книге, а не к ее местоположению или диску (как это может измениться), а вместо этого обратиться к ней в отчете Power BI.

let
    Source = Sql.Database("MyDatabase", "MY_DATA"),
    #"PerformanceTable" = Source{[Schema="dbo",Item="PerformanceTable"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(#"PerformanceTable",{{"VENDOR_CODE", Int64.Type}}),
    Excel1 = Excel.Workbook(File.Contents("C:\Users\myaccount\OneDrive\Power BI\Vendor List.xlsx"), null, true),
    _Vendor_List_Table = Excel1{[Item="_Vendor_List",Kind="Table"]}[Data],
    ExcelChange = Table.TransformColumnTypes(_Vendor_List_Table,{{"Vendor", Int64.Type}, {"Name", type text}, {"Group", type text}}),
    Filter = Table.SelectRows(#"Changed Type", each List.Contains(ExcelChange[Vendor], [VENDOR_CODE]))
In
    Filter
...