Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi
I want to optimize M-Script and use variables for expressions that can be reused, however system is returning error:
Expression.Error: There is an unknown identifier. Did you use the [field] shorthand for a _[field] outside of an 'each' expression?
MojMesec variable has been defined, however it triggers error when executing, but syntax seem to be correct.
[Fiscal Period] is text field with format MM.YYYY.
Thanks for any suggestion, Marko.
Section of code that works:
#"Added Custom5" = Table.AddColumn(#"Pivoted Column", "Month Year", each if Number.FromText(List.First(Text.Split([Fiscal Period],"."))) > 6 then "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],"."))))+1) else "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],".")))))),
Optimized code that is returning error:
MojMesec = Number.FromText(List.First(Text.Split([Fiscal Period],"."))),
#"Added Custom5" = Table.AddColumn(#"Pivoted Column", "Month Year", each if MojMesec > 6 then "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],"."))))+1) else "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],".")))))),
Solved! Go to Solution.
you can only turn this into a function for a variable like so:
MojMesec = (FiscalPeriod) => Number.FromText(List.First(Text.Split(Fiscal Period,"."))), #"Added Custom5" = Table.AddColumn(#"Pivoted Column", "Month Year", each if MojMesec([Fiscal Period]) > 6 then "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],"."))))+1) else "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],".")))))),
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
you can only turn this into a function for a variable like so:
MojMesec = (FiscalPeriod) => Number.FromText(List.First(Text.Split(Fiscal Period,"."))), #"Added Custom5" = Table.AddColumn(#"Pivoted Column", "Month Year", each if MojMesec([Fiscal Period]) > 6 then "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],"."))))+1) else "1/"&Number.ToText(Number.Mod(Number.FromText(List.First(Text.Split([Fiscal Period],".")))+5,12)+1)&"/"&Number.ToText(Number.FromText(List.First(List.Reverse(Text.Split([Fiscal Period],".")))))),
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Invoking @ImkeF
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
106 | |
93 | |
75 | |
62 | |
50 |
User | Count |
---|---|
147 | |
107 | |
105 | |
87 | |
61 |