cancel
Showing results for
Did you mean: New Member

## How to convert Forms Likert Scale into value and compute average?

I am using a 6 point Likert Scale in Forms ("Oustanding", "Beyond Expectation", "Meets Expectation", "Below Expectation", "Issue", "Unknown"). I have 9 items, which are assessed along these lines.

How can I transform the data in Flow efficiently into values from 5 ("Oustanding") to 1 ("Issue") and compute the average of these values (with "Unknown" being ignored in the computation of the mean)?

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions  Resident Rockstar

Hi @dsFra

This is possible but not straight forward.

I see where you are going with "if(equals(...,"Outstanding),5,if(equals(...,"Beyond Expectation"),4, ... etc ... ))" and what I propose below, may be able to further enhanced but here is a working example that has been tested and does provide the results you are looking for in a float so 1.5 is possible when averaging off the final compute.

Here is the form: Here is the Flow Here are the actions and expressions:  `if(equals(variables('Q1'), 'Oustanding'),int('5'),if(equals(variables('Q1'), 'Beyond Expectation'),int('4'),if(equals(variables('Q1'), 'Meets Expectation'),int('3'),if(equals(variables('Q1'), 'Below Expectation'),int('2'),if(equals(variables('Q1'), 'Issue'),int('1'),if(equals(variables('Q1'), 'Unknown'),int('0'),''))))))` `if(equals(variables('Q2'), 'Oustanding'),int('5'),if(equals(variables('Q2'), 'Beyond Expectation'),int('4'),if(equals(variables('Q2'), 'Meets Expectation'),int('3'),if(equals(variables('Q2'), 'Below Expectation'),int('2'),if(equals(variables('Q2'), 'Issue'),int('1'),if(equals(variables('Q2'), 'Unknown'),int('0'),''))))))` `if(equals(variables('Q3'), 'Oustanding'),int('5'),if(equals(variables('Q3'), 'Beyond Expectation'),int('4'),if(equals(variables('Q3'), 'Meets Expectation'),int('3'),if(equals(variables('Q3'), 'Below Expectation'),int('2'),if(equals(variables('Q3'), 'Issue'),int('1'),if(equals(variables('Q3'), 'Unknown'),int('0'),''))))))` `div(add(add(variables('A1'), variables('A2')), variables('A3')), variables('Divider'))`

If implemented as above for 3 questions it works. You would need to scale out to suit you.

If this post has solved your problem, please click "Accept as Solution".

Thanks, Alan

Proud to be a Flownaut!

5 REPLIES 5  Solution Sage

Hi @dsFra ,

I am afraid that there is no way to achieve your needs in Microsoft Flow currently.

According to your discription, first, we need get the 6 point, then transform the points into values.

However, in MS flow, we can only get the response details but not the form details.

Here is a similar idea you can vote with:

Best Regards,

Community Support Team _ Zhongys

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

I would just need to create some hard coded variable transformation: if the answer equals "Oustanding" then assign value "5", if "Beyond Expecation" assign "4" etc. In the end I need to compute an average and that's it.

I was trying to do this with an expression in the logic of "if(equals(...,"Outstanding),5,if(equals(...,"Beyond Expectation"),4, ... etc ... )). It didn't give me the right result, unfortunately, but maybe I had just a simple flaw in there.  Resident Rockstar

Hi @dsFra

This is possible but not straight forward.

I see where you are going with "if(equals(...,"Outstanding),5,if(equals(...,"Beyond Expectation"),4, ... etc ... ))" and what I propose below, may be able to further enhanced but here is a working example that has been tested and does provide the results you are looking for in a float so 1.5 is possible when averaging off the final compute.

Here is the form: Here is the Flow Here are the actions and expressions:  `if(equals(variables('Q1'), 'Oustanding'),int('5'),if(equals(variables('Q1'), 'Beyond Expectation'),int('4'),if(equals(variables('Q1'), 'Meets Expectation'),int('3'),if(equals(variables('Q1'), 'Below Expectation'),int('2'),if(equals(variables('Q1'), 'Issue'),int('1'),if(equals(variables('Q1'), 'Unknown'),int('0'),''))))))` `if(equals(variables('Q2'), 'Oustanding'),int('5'),if(equals(variables('Q2'), 'Beyond Expectation'),int('4'),if(equals(variables('Q2'), 'Meets Expectation'),int('3'),if(equals(variables('Q2'), 'Below Expectation'),int('2'),if(equals(variables('Q2'), 'Issue'),int('1'),if(equals(variables('Q2'), 'Unknown'),int('0'),''))))))` `if(equals(variables('Q3'), 'Oustanding'),int('5'),if(equals(variables('Q3'), 'Beyond Expectation'),int('4'),if(equals(variables('Q3'), 'Meets Expectation'),int('3'),if(equals(variables('Q3'), 'Below Expectation'),int('2'),if(equals(variables('Q3'), 'Issue'),int('1'),if(equals(variables('Q3'), 'Unknown'),int('0'),''))))))` `div(add(add(variables('A1'), variables('A2')), variables('A3')), variables('Divider'))`

If implemented as above for 3 questions it works. You would need to scale out to suit you.

If this post has solved your problem, please click "Accept as Solution".

Thanks, Alan

Proud to be a Flownaut! New Member

Works perfectly. Thanks a lot!  Resident Rockstar
You’re most welcome.
Happy Flowing.
Thanks, Alan

Proud to be a Flownaut!  Announcements #### Welcome to the User Group Public Preview #### Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks Top Solution Authors
Top Kudoed Authors
Users online (56,957)