Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreThe FabCon + SQLCon recap series starts April 14th at 8am Pacific. If you’re tracking where AI is going inside Fabric, this first session is a can't miss. Register now
Hi,
I have a table as below
I would like to filter out the orders made by buyer XXX but only in 2023. So it beomces like below table.
When I just filter out XXX in power query, it becomes like below
Is there any Power M, that can command to filter for certain data range??
Solved! Go to Solution.
I am sorry I misread your sentence.
I think the trick is to use "each not". So first write a select statement that will only keep the rows of buyer=XXX and date in 2023 and then negate it with the "not" operator.
let
Source = #table(
{"Date","Delivered Qnt.", "PO No.", "Buyer"},
{
{"2023/01/01", 25, "1", "XXX"},
{"2021/01/01", 53, "2", "XXX"},
{"2022/01/01", 25, "3", "YYY"},
{"2021/01/01", 15, "4", "ZZZ"}
}
),
#"Changed column type" = Table.TransformColumnTypes(Source, {{"Date", type date}, {"Delivered Qnt.", Int64.Type}, {"PO No.", Int64.Type}, {"Buyer", type text}}),
// Keep rows where not buyer=xxx and date in 2023
#"Filtered rows" = Table.SelectRows(#"Changed column type", each not (([Buyer] = "XXX") and ([Date] >= #date(2023, 1, 1) and [Date] <= #date(2024, 1, 1))))
in
#"Filtered rows"
To add the date filter:
You can click on the small arrow symbol next to your column header for "Date", then select "Date filters", then "After..." and follow the instructions there to set your cut-off date.
This way Power Query will first apply your Buyer="XXX" filter and then add the Date>="2023/01/01" filter. You can think of it as a sequence of steps that lead to the end result of the desired table.
This will generate code similar to this:
let
Source = #table(
{"Data","Delivered Qnt.", "PO No.", "Buyer"},
{
{"2023/01/01", 25, "1", "XXX"},
{"2021/01/01", 53, "2", "XXX"},
{"2022/01/01", 25, "3", "YYY"},
{"2021/01/01", 15, "4", "ZZZ"}
}
),
#"Changed column type" = Table.TransformColumnTypes(Source, {{"Data", type date}, {"Delivered Qnt.", Int64.Type}, {"PO No.", Int64.Type}, {"Buyer", type text}}),
// Filter by Buyer
#"Filtered rows" = Table.SelectRows(#"Changed column type", each ([Buyer] = "XXX")),
// Filter Date >= 01/01/2023
#"Filtered rows 1" = Table.SelectRows(#"Filtered rows", each [Data] >= #date(2023, 1, 1))
in
#"Filtered rows 1"
Thanks @WanderingBI
I think this will just filter out specific buyers regardless of date. I dont want that..
I want to apply the BUYER filter in specific period.
I am sorry I misread your sentence.
I think the trick is to use "each not". So first write a select statement that will only keep the rows of buyer=XXX and date in 2023 and then negate it with the "not" operator.
let
Source = #table(
{"Date","Delivered Qnt.", "PO No.", "Buyer"},
{
{"2023/01/01", 25, "1", "XXX"},
{"2021/01/01", 53, "2", "XXX"},
{"2022/01/01", 25, "3", "YYY"},
{"2021/01/01", 15, "4", "ZZZ"}
}
),
#"Changed column type" = Table.TransformColumnTypes(Source, {{"Date", type date}, {"Delivered Qnt.", Int64.Type}, {"PO No.", Int64.Type}, {"Buyer", type text}}),
// Keep rows where not buyer=xxx and date in 2023
#"Filtered rows" = Table.SelectRows(#"Changed column type", each not (([Buyer] = "XXX") and ([Date] >= #date(2023, 1, 1) and [Date] <= #date(2024, 1, 1))))
in
#"Filtered rows"
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 5 | |
| 4 | |
| 3 | |
| 2 | |
| 2 |
| User | Count |
|---|---|
| 8 | |
| 6 | |
| 6 | |
| 6 | |
| 5 |