cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
apanek
Frequent Visitor

Format Numbers

Hello, I am trying to create a scheduled flow to export CSV data to a SharePoint folder. Two of my columns contain percentages but when exported to a CSV file in SharePoint they show as decimals. I've been trying to use the formatnumber expression to switch them to percentages but I keep running into errors. I know I am probably missing a few steps (arrays, strings, etc.) in my flow but I've searched everywhere and I cannot find resolution. Any help would be greatly appreciated!

 

Current flow:

Recurrence

Run a query against a dataset

Select action to change column names

create a CSV table

Create file to SharePoint

1 ACCEPTED SOLUTION

Accepted Solutions
Expiscornovus
Super User
Super User

Hi @apanek,

 

Sorry, the empty function can't handle the float data type. For the empty check we could convert the item to a string (just for the check).

 

Try something like:

if(empty(string(item()?['Distressed %'])), '', formatnumber(item()?['Distressed %'],'P2','en-us'))


Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


View solution in original post

15 REPLIES 15
Expiscornovus
Super User
Super User

Hi @apanek,

 

Can you share the errors?

 

Btw, did you use the formatnumber function with the 'P2' in the Select action?

formatnumber(item()?['nameofcolumn'], 'P2')

 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


I added a select action with the following expression: formatnumber(item()?['Distressed__'], 'P2', 'en-us' and received the following error: The execution of template action 'Select' failed: The evaluation of 'query' action 'where' expression '{
"Distressed %": "@formatnumber(item()?['Distressed__'],'P2','en-us')"
}' failed: 'The template language function 'formatnumber' expects its first parameter to be an integer or a decimal number. The provided value is of type 'Null'. Please see https://aka.ms/logicexpressions#FormatNumber for usage details.'.

 

So I did some googling and added a VarString and then a compose action (

split(variables('VarString'),',')) before my select action and I still receive the following error on my select action: The execution of template action 'Select' failed: The evaluation of 'query' action 'where' expression '{
"Distressed %": "@formatnumber(item()?['Distressed__'],'P2')",
"Past Due %": "@formatnumber(item()?['Past Due %'],'P2')"
}' failed: 'The template language expression 'formatnumber(item()?['Distressed__'],'P2')' cannot be evaluated because property 'Distressed__' cannot be selected. Array elements can only be selected using an integer index. Please see https://aka.ms/logicexpressions for usage details.'.
Expiscornovus
Super User
Super User

Hi @apanek,

 

It looks like that first error is cause because of an empty value. The formatnumber does not like that. You can try and avoid it by using an empty check. If that is false you could use the formatnumber.

 

Can you try this and see if that makes a difference?

if(empty(item()?['Distressed__']), '', formatnumber(item()?['Distressed__'],'P2','en-us'))

 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


I receive the following error: The 'from' property value in the 'select' action inputs is of type 'String'. The value must be an array.

Expiscornovus
Super User
Super User

Hi @apanek,

 

Can you share a screenshot of your setup? That might help troubleshooting.

 

Btw, the expression I shared would be in one of the value fields of the Map field within the Select action.

 

value_expression.png



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


Here are the screenshots. I am trying it in two different flows, one without the VarString I added and one with.

Snag_583f185.png

Snag_58440cd.png

Expiscornovus
Super User
Super User

Hi @apanek,

 

Question about the scenario without the varString variable.

 

Which output are you using in the From of the Select action? Are you by any chance use the CSV output?

 

That would be a string and the Select From field would not like that. Can't you use the output of the Change Column Names instead?

 

 

 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


No errors this time (yay!) but, the csv file that is created still shows the column as decimals vs %s.

Snag_5962d5d.png

Snag_597b229.png

Expiscornovus
Super User
Super User

Hi @apanek,

 

Can you share an example/screenshot of the inputs and outputs of your Change Column Names action from the flow run history of that last instance?

 

Just want to see what the column names and values are before and after that action has changed it.



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


Expiscornovus
Super User
Super User

Hi @apanek,

 

It might also be good to know if you rename the columns in the Change Column Names action you would also have to refer to them in your expression by their new key names in the Select 2 action.

 

renamedkey.png



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


I sent you a PM with the input/output screenshots.

 

I thought the same thing with the expression, however, when I change the expression to the name I changed in the previous action I receive the following error: The execution of template action 'Select_2' failed: The evaluation of 'query' action 'where' expression '{
"Distressed %": "@if(empty(item()?['Distressed %']), '', formatnumber(item()?['Distressed %'],'P2','en-us'))"
}' failed: 'The template language function 'empty' expects its parameter to be an object, an array or a string. The provided value is of type 'Float'. 

 

apanek_0-1664986631026.png

 

Expiscornovus
Super User
Super User

Hi @apanek,

 

Sorry, the empty function can't handle the float data type. For the empty check we could convert the item to a string (just for the check).

 

Try something like:

if(empty(string(item()?['Distressed %'])), '', formatnumber(item()?['Distressed %'],'P2','en-us'))


Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


No errors, but the file in SharePoint still outputs decimals.

apanek_1-1664991482499.png

 

The output of the select action looks like it is working properly though.

apanek_0-1664991449755.png

 

.

Expiscornovus
Super User
Super User

Hi @apanek,

 

Just to double check. You used the output of the Select 2 action in your Create CSV table action From field, correct? 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


Of course I didn't (face palm), sorry about that! I did just now and it worked. Thank you for sticking with me and helping me get the results I needed.

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (3,165)