New to all this ...
How can I filter import of tableA from Access, where field [Month] is equal/less than Tableb[CurMonth], a field we manually update when new month's data is ready to load on BI?
Thank you
Solved! Go to Solution.
thanks @austinsense 🙂
filter equal is easiest done by merging with JoinKind.Inner as described in these articles:
http://www.thebiccountant.com/2015/08/18/use-timeline-or-slicers-to-filter-your-power-query-import/
filter < is a bit different: There you have to use parameters. To do so you start filtering your table in the desired way by putting in a hardcoded value. After that you edit the resulting M-code and replace the hardcoded value by the parameter.
The parameter can be retrieved from a table by it's coordinates:
queryname[Columnname]{Rownumber-1}
So say your parameter sits in the first row the expression would be: Tableb[CurrMonth]{0}
Rownumber is zero because M starts to count with 0 (for the 1st row)
So this is how the parametrized filter would look like:
= Table.SelectRows(Source, each [Month] < Tableb[CurrMonth]{0})
Did I answer your question? Mark my post as a solution!
Proud to be a Datanaut!
Imke Feldmann
How to integrate M-code into your solution -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Create a calculcated column which checks for the "size" of the month and compare. If comparison is true, parse "Yes", otherwise "No". Then use this help-column for filtering via filter pane or slicer.
@ImkeF do you have some query magic for this guy?
thanks @austinsense 🙂
filter equal is easiest done by merging with JoinKind.Inner as described in these articles:
http://www.thebiccountant.com/2015/08/18/use-timeline-or-slicers-to-filter-your-power-query-import/
filter < is a bit different: There you have to use parameters. To do so you start filtering your table in the desired way by putting in a hardcoded value. After that you edit the resulting M-code and replace the hardcoded value by the parameter.
The parameter can be retrieved from a table by it's coordinates:
queryname[Columnname]{Rownumber-1}
So say your parameter sits in the first row the expression would be: Tableb[CurrMonth]{0}
Rownumber is zero because M starts to count with 0 (for the 1st row)
So this is how the parametrized filter would look like:
= Table.SelectRows(Source, each [Month] < Tableb[CurrMonth]{0})
Did I answer your question? Mark my post as a solution!
Proud to be a Datanaut!
Imke Feldmann
How to integrate M-code into your solution -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Thank you! The imported data table now only shows up to month specified in TableB[mnt]. But, the reports 'working of' this table still include later data, i.e. I though this would restrict all reports based on that table to be limited to that?
I.e. used: #"Up to Month" = Table.SelectRows(_CSI, each [Month] <= DBmnt[Mnt]{0})
That's not the expected behaviour.
I know this is stupid question (but I have no other idea): Are you sure that the following queries are actually referencing this query of did you develop them earlier by just copying the original query? Then you had to apply this filter there as well.
Did I answer your question? Mark my post as a solution!
Proud to be a Datanaut!
Imke Feldmann
How to integrate M-code into your solution -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Yes, my 'previous' filter was interfering ... now fixed and working.
Thank you for your assistance - really appreciated!
User | Count |
---|---|
121 | |
77 | |
72 | |
70 | |
68 |
User | Count |
---|---|
106 | |
61 | |
60 | |
50 | |
47 |