0

I need to build an assessment calculator that will perform the following:

POINTS: 0.0 - 3.0

COST: $0.00 - $1000

ASSESSMENT RATING: LOW, MEDIUM, HIGH

Assessment logic:

If POINTS between 0.0 and 1.0, and COST between $0.00 and $350, then ASSESMENT RATING = LOW

If POINTS between 1.0 and 2.0, and COST between $350 and $700, then ASSESSMENT RATING = MEDIUM

If POINTS between 2.0 and 3.0, and COST between $700 and $1000, then ASSESSMENT RATING = HIGH

Alt;

If POINTS between 0.00 and 1.0, and COST between $700 and $1000, then ASSESSMENT RATING = MEDIUM

If POINTS between 1.0 and 2.0, and COST between $0.00 and $350, then ASSESSMENT RATING = LOW

The idea is to determine ASSESSMENT RATING based on the range of POINTS and COST - a simple assessment calculator.

The challenge is to do this in Power Apps, listing a stack of custom conditions / permutations in a way that is readable and viable.

*An optional feature could be an addition of weighing values (referenced from a SharePoint list) on POINTS, in group categories that can be changed by owners if / when required. **The same could be applied on COST in the form of percentage discount (referenced from a SharePoint list).

This would amount to a resourceful pattern for many solutions.

What is the best way to achieve this in Power Apps?

(The actual syntax required to articulate the list of assessment conditions to get consistent / reliable rating results).

1

The logic would be a lot easier to achieve in a SharePoint list - using Calculated column. Although I do not recommend writing the logic all in PowerApps since it increases the loading time tremendously, it is workable. ASSESSMENT RATING field should be Read-Only either way.

Assuming you have this PowerApps form attached to a SharePoint list, column value ranges can be easily configured via Column settings.

Add a Label to the form to display the value for ASSESSMENT RATING (Note that the value cannot be passed back to the list). Here is a sample formula based on the provided logic:

POINTS = DataCardValue2
COST = DataCardValue3

If((((Value(DataCardValue2.Text)>0.0)&&(Value(DataCardValue2.Text)<1.0))||((Value(DataCardValue2.Text)>1.0)&&(Value(DataCardValue2.Text)<2.0))&&(Value(DataCardValue3.Text)>0.00)&&(Value(DataCardValue3.Text)<350)),"LOW",
    If((((Value(DataCardValue2.Text)>1.0)&&(Value(DataCardValue2.Text)<2.0)&&(Value(DataCardValue3.Text)>350)&&(Value(DataCardValue3.Text)<700))||((Value(DataCardValue2.Text)>0.0)&&(Value(DataCardValue2.Text)<1.0)&&(Value(DataCardValue3.Text)>700)&&(Value(DataCardValue3.Text)<1000))),"MEDIUM",
        If((Value(DataCardValue2.Text)>2.0)&&(Value(DataCardValue2.Text)<3.0)&&(Value(DataCardValue3.Text)>700)&&(Value(DataCardValue3.Text)<1000),"HIGH")
    )
)

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.