cancel
Showing results for
Did you mean:

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Helper III

## M Code - find prior fiscal period (even if in prior fiscal year)

Hello,

I've managed to create this MCode to filter by the previous fiscal period. Please can someone point me in the right direction to write it so that is can cope with looking back to the prievious fiscal year? (e.g. if it is fiscal period 1 now, then it should filter by period 12, and the preiovius fiscal year ("Year - 1").

FilteredFYPeriod = Table.SelectRows(Debt_, each [FY] = Year and [Period]=Period - 1 ),

Thank you for any help,

PW

1 ACCEPTED SOLUTION
Community Support

Hi, @PowerWhy

You can try the following M code:

``````let
Source = PowerPlatform.Dataflows([]),
Workspaces = Source{[Id="Workspaces"]}[Data],
Workspace_to_use = Workspaces{[workspaceId=Workspace_ID]}[Data],
Dataflow_to_use = Workspace_to_use{[dataflowId=Dataflow_ID]}[Data],
Debt_ = Dataflow_to_use{[entity="Debt",version=""]}[Data],
FilteredFYPeriod = Table.SelectRows(Debt_,
each if Period = 1
then [FY] = Year - 1 and [Period] = 12 else
[FY] = Year and [Period] = Period - 1
)
in
FilteredFYPeriod``````

Hope this helps you.

Best Regards

Jianpeng Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

4 REPLIES 4
Helper III

Ahh sorry I'm switching between too many programming languages! 🙂 - I think this is the fix?:

let
Source = PowerPlatform.Dataflows([]),
Workspaces = Source{[Id="Workspaces"]}[Data],
Workspace_to_use = Workspaces{[workspaceId=Workspace_ID]}[Data],
Dataflow_to_use = Workspace_to_use{[dataflowId=Dataflow_ID]}[Data],
Debt_ = Dataflow_to_use{[entity="Debt",version=""]}[Data],
FilteredFYPeriod = Table.SelectRows(Debt_,
if Period = 1 then
each [FY] = Year - 1 and [Period] = 12 else
each [FY] = Year and [Period] = Period - 1
)
in
FilteredFYPeriod

Community Support

Hi, @PowerWhy

You can try the following M code:

``````let
Source = PowerPlatform.Dataflows([]),
Workspaces = Source{[Id="Workspaces"]}[Data],
Workspace_to_use = Workspaces{[workspaceId=Workspace_ID]}[Data],
Dataflow_to_use = Workspace_to_use{[dataflowId=Dataflow_ID]}[Data],
Debt_ = Dataflow_to_use{[entity="Debt",version=""]}[Data],
FilteredFYPeriod = Table.SelectRows(Debt_,
each if Period = 1
then [FY] = Year - 1 and [Period] = 12 else
[FY] = Year and [Period] = Period - 1
)
in
FilteredFYPeriod``````

Hope this helps you.

Best Regards

Jianpeng Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helper III

Thank you @v-jianpeng-msft I'm afraid I'm not seeing how to apply that to my situation. Please could you tell me how to adjust the formula below to achieve the same?

### letSource = PowerPlatform.Dataflows([]),Workspaces = Source{[Id="Workspaces"]}[Data],Workspace_to_use = Workspaces{[workspaceId=Workspace_ID]}[Data],Dataflow_to_use = Workspace_to_use{[dataflowId=Weekly_Dataflow_ID]}[Data],Debt_ = Dataflow_to_use{[entity="Debt",version=""]}[Data],FilteredFYPeriod = Table.SelectRows(Debt_,  if(Period = 1,    each [FY] = Year - 1 and [Period] = 12,    each [FY] = Year and [Period] = Period - 1  ))inFilteredFYPeriod

Thank you,

PW

Community Support

Hi, @PowerWhy

``````let
Source = YourTable, // Replace with your data table name
currentPeriod = YourTable[Period], // Replace with your "Period" column name
currentYear = Date.Year(DateTime.LocalNow()),
previousYear = currentYear - 1,
FilteredRows = Table.SelectRows(Source, each [Period] = 12 or [Period] = currentPeriod or [Period] = previousYear)
in
FilteredRows``````

I created the following Sample data:

I create a new blank query and use the M code above:

The query results are as follows:

If it does not help, please provide more details with your desired output and pbix file without privacy information (or some sample data) .

Best Regards

Jianpeng Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.