cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Super User
Super User

Value() Question

Hello,

I have an app that will need to make use of Imperial values for distance measurements.

Example: 1' 3 1/8" (one foot, three and one eighth inches)

  • Have a Dropdown Control for users to select 1/16" increments
    • Each value is set to text (surrounded by " ")
  • Need to perform math on the values
  • Interestingly, if I use 7/8 instead of "7/8", PowerApps converts to decimal
  • However, I am not able to access the fraction with Value("7/8") nor Value(fractionDropdown.Selected.Value)

How can I give the user the ability to select text fractions ("7/8", etc.) but perform math on their selection?

Ideally, I'd like to take things like "1/2" - "1/4" = "1/4" (NOT .25)

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Super User
Super User

Re: Value() Question

Wow. Just figured this one out. Hopefully useful to others. 

Set your trigger (OnStart/OnVisible/OnSelect/Etc.):

ClearCollect(colFracConvert,
    {imperial: "0", metric:0},
    {imperial: "1/16", metric:1/16},
    {imperial: "1/8", metric:1/8},
    {imperial: "3/16", metric:3/16},
    {imperial: "1/4", metric:1/4},
    {imperial: "5/16", metric:5/16},
    {imperial: "3/8", metric:3/8},
    {imperial: "7/16", metric:7/16},
    {imperial: "1/2", metric:1/2},
    {imperial: "9/16", metric:9/16},
    {imperial: "5/8", metric:5/8},
    {imperial: "11/16", metric:11/16},
    {imperial: "3/4", metric:3/4},
    {imperial: "13/16", metric:13/16},
    {imperial: "7/8", metric:7/8},
    {imperial: "15/16", metric:15/16}
);

Set Dropdown Control Items Property to: 

  • Two Dropdown Controls; Measurement 1 and Measurement 2.
  • Set both to:
colFracConvert.imperial

Insert a (hidden) helper Textbox Control with Text Property set to:

LookUp(colFracConvert, 
    measurement1.Selected.Value = imperial, metric
) - 
LookUp(colFracConvert, 
    measurement2.Selected.Value = imperial, metric
)

Special sauce:

Set the "Difference" Textbox Control Text Property to:

If(
    Value(hiddenHelper.Text) < 0,
        "-" & 
        LookUp(colFracConvert,
            Value(
                Last(
                    Split(hiddenHelper.Text,"-").Result
                ).Result) = metric, imperial
            ),
        "+" & //You could leave this line out if the "+" doesn't matter to your use case
        LookUp(colFracConvert,
            Value(hiddenHelper.Text) = metric, imperial
        )
)

Whew! Been chewing on that one for a couple days. First time really using text wranglers like Last(Split()).

Enjoy!

View solution in original post

1 REPLY 1
Super User
Super User

Re: Value() Question

Wow. Just figured this one out. Hopefully useful to others. 

Set your trigger (OnStart/OnVisible/OnSelect/Etc.):

ClearCollect(colFracConvert,
    {imperial: "0", metric:0},
    {imperial: "1/16", metric:1/16},
    {imperial: "1/8", metric:1/8},
    {imperial: "3/16", metric:3/16},
    {imperial: "1/4", metric:1/4},
    {imperial: "5/16", metric:5/16},
    {imperial: "3/8", metric:3/8},
    {imperial: "7/16", metric:7/16},
    {imperial: "1/2", metric:1/2},
    {imperial: "9/16", metric:9/16},
    {imperial: "5/8", metric:5/8},
    {imperial: "11/16", metric:11/16},
    {imperial: "3/4", metric:3/4},
    {imperial: "13/16", metric:13/16},
    {imperial: "7/8", metric:7/8},
    {imperial: "15/16", metric:15/16}
);

Set Dropdown Control Items Property to: 

  • Two Dropdown Controls; Measurement 1 and Measurement 2.
  • Set both to:
colFracConvert.imperial

Insert a (hidden) helper Textbox Control with Text Property set to:

LookUp(colFracConvert, 
    measurement1.Selected.Value = imperial, metric
) - 
LookUp(colFracConvert, 
    measurement2.Selected.Value = imperial, metric
)

Special sauce:

Set the "Difference" Textbox Control Text Property to:

If(
    Value(hiddenHelper.Text) < 0,
        "-" & 
        LookUp(colFracConvert,
            Value(
                Last(
                    Split(hiddenHelper.Text,"-").Result
                ).Result) = metric, imperial
            ),
        "+" & //You could leave this line out if the "+" doesn't matter to your use case
        LookUp(colFracConvert,
            Value(hiddenHelper.Text) = metric, imperial
        )
)

Whew! Been chewing on that one for a couple days. First time really using text wranglers like Last(Split()).

Enjoy!

View solution in original post

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

Top Kudoed Authors
Users Online
Currently online: 170 members 4,470 guests
Please welcome our newest community members: