cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ericonline
Community Champion
Community Champion

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
ericonline
Community Champion
Community Champion

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
ericonline
Community Champion
Community Champion

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!

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Power Apps Ideas

Check out the New Ideas Site

We are excited to announce a new way to share your ideas for Power Apps!

Top Solution Authors
Top Kudoed Authors
Users online (3,760)