cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
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 (Last 30 Days)
Users online (4,790)