
Some time in the past I used to be visiting a buyer that requested if they will filter a question knowledge by a column from one other question in Energy BI. And I mentioned after all you’ll be able to. On this publish I clarify how that may be achieved in Energy Question. The important thing level is to know find out how to reference a question and find out how to reference a column of that question in Energy Question. That is helpful when you may have a lookup desk that may be sourced from each supported knowledge supply in Energy Question and also you need to filter the outcomes of one other question by related column within the lookup question. In that case, you’ll have a form of dynamic filtering. So, everytime you refresh your mannequin if new information have been modified in or added to the supply of the lookup question, your desk will mechanically embody the brand new values within the filter step in Energy Question.
Referencing a Question
It’s fairly easy, you simply want to make use of the title of the question. If the question title accommodates particular characters like house, then you’ll want to wrap it with quantity signal and double quotes like #”QUERY_NAME”. So, if I need to reference one other question, in a brand new clean question, then the Energy Question (M) scripts would appear like beneath:
let
Supply = Product
in
Supply
Or one thing like
let
Supply = #"Product Class"
in
Supply
Referencing a Column
Referencing a column can be fairly easy. If you reference a column you’ll want to point out the referencing question title, defined above, together with the column title in brackets. So, the format will appear like #”QUERY_NAME”[COLUMN_NAME]. The result’s a listing of values of that exact column.
let
Supply = #"Product Class"[Product Category Name]
in
Supply

Filtering a Question Column with Referencing Column from One other Question
Filtering a column utilizing the question editor UI is pretty easy. You simply want to pick the wanted values from dropdown and it’s achieved. However the question in that case is filtered with fixed values. So in case your reporting requirement modifications sooner or later, you’ll have to redo the filtering and refresh the question. Our state of affairs is a bit completely different although, we need to filter a column by values from one other column. I simply talked about earlier how simply you’ll be able to reference a column from one other desk. I additionally talked about that the outcomes of that referencing can be a Listing of values proper? So what we’re after is filtering a column by a listing of values. There’s a perform in Energy Question that makes it straightforward, List.Incorporates(listing, values).
I’d relatively clarify the remaining with a state of affairs. I’ve a Product Subcategory desk containing descriptive knowledge of all product subcategories. The enterprise now has a reporting requirement that I’ve to filter the Product Subcategory names by knowledge from one other desk. The second desk accommodates solely authorised subcategories. The second desk title is “Product Subcategory Lookup”. The info within the “Product Subcategory Lookup” is continuously up to date by the enterprise.
The one factor I have to do is to do is to make use of the Listing.Incorporates perform like beneath:
Listing.Incorporates(#"Product Subcategory Lookup"[Approved Subcategory], [Subcategory Name])
In case you’re used to make use of the question editor UI then you’ll be able to simply apply a filter to the [Subcategory Name], then change the code as beneath:

In case you’re extra hands-on and like writing the M codes then use the Superior Editor to sort the codes.
#"Filtered Rows" = Desk.SelectRows(#"PREVIOUS_STEP", every Listing.Incorporates(#"REFERENCED_TABLE"[REFERENCED_COLUMN], [COLUMN_TO_BE_FILTERED]))
For these of you who’re extra accustomed to SQL, the above M code works much like the beneath SQL script (in case your supply is SQL Server):
SELECT productsubcategorykey
, productsubcategoryalternatekey
, [Subcategory Name]
FROM DimProductSubcategory
WHERE [Subcategory Name] IN (SELECT [Approved Subcategory]
FROM [Product Subcategory Lookup])