根据Excel表格过滤一个Power BI查询

时间:2020-02-06 21:49:30

标签: excel powerbi powerquery m

我在电子表格中有一个名为“ _Vendor_List”的表,并用它来过滤该电子表格中用于分析的查询。

类似地,我想基于此同一表在Power BI中过滤相同的查询。这在excel中有效,但是我不确定在Power BI中查询的语法是否/如何变化。

我的Excel Power Query Code是:

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 :(得分:0)

好吧,我想出了要使此过滤器工作所需的语法。我无法使用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