Show_If Statement not in proper row context

In the app a user can register for a particular board. There are a total of 3 boards that they can register for. I have the following expression AND(CONTAINS([Board] = “C Note”, [Email Address]) = False, CONTAINS([Board] = “Monkey”, [Email Address]) = False, CONTAINS([Board] = “Monkey”, [Email Address]) = False) in the Show_If of the board assignment table. This, however, states: This formula is not evaluated in the context of a row, so column values are not available. How should I rewrite this formula to be in the proper context?

Solved Solved
0 7 746
1 ACCEPTED SOLUTION

I think I understand. Try this expression in the show_if field

IN( {board name for view} , SELECT( Board Registrations[Board] , [Email Address] = USEREMAIL() )

Replace {board name for view} with the name of the board associated with each view.
Replace “Board Registrations” with whatever is the name of the table that you just posted example data from.

Also reference:

View solution in original post

7 REPLIES 7

Steve
Platinum 4
Platinum 4

This entire expression is invalid.


The Show_If expression for a table view is not aware of any one row of the table, so you cannot reference columns of the current row. Your expression uses [Board] and [Email Address], but the view’s Show_If expression doesn’t know which of the several rows it’s displaying you mean.

I know. I just need help on an expression. Not an explanation of what is going wrong.

How do your users select the boards?

Can you try to explain in plain english what this expression is supposed to be checking?

I’d guess that you probably should be doing a LOOKUP( USEREMAIL() , …), or a call to USERSETTINGS(…) in your expression to replace the column references.

Proper usage of CONTAINS() would be something like

CONTAINS( [Board] , “Monkey” )

if [Board] = “C Note”, would return FALSE
if [Board] = “Monkey”, would return TRUE
if [Board] = “Monkey,C Note”, would return TRUE

If [Board] is a List or EnumList column, you should be using IN() instead.

Yes, I do not mind. The user can only register for each board once.

Board Assignment Id Gifter Email Address Board
DCC64875-44B3-4DF9-A21B-329BBD12C660 1DA4FEFF-E2E5-4E0C-9B8F-36D7BD3F26A2 lihaynesworth@gmail.com C Note
E0D818A2-2E7D-4C49-99E3-C89363282972 1DA4FEFF-E2E5-4E0C-9B8F-36D7BD3F26A2 lihaynesworth@gmail.com Monkey
916C264B-8D40-4C10-86E4-97C95F3BD9DE 1DA4FEFF-E2E5-4E0C-9B8F-36D7BD3F26A2 lihaynesworth@gmail.com Le Dame Grande

Then the view for the board is hidden. I am stumped on how to write the proper Show_If statement for the view. The expression is not valid in Show_IF but if I use it elsewhere it works. ARGGGGGHHHH

I think I understand. Try this expression in the show_if field

IN( {board name for view} , SELECT( Board Registrations[Board] , [Email Address] = USEREMAIL() )

Replace {board name for view} with the name of the board associated with each view.
Replace “Board Registrations” with whatever is the name of the table that you just posted example data from.

Also reference:

OK, I am too stoked to try it out!!!

3X_1_0_1050f4f0e69d8b435466e80e6cbbbc8f6b7ae54d.gif

OH BABY IF YOU WERE RIGHT HERE IN FRONT OF ME!!! So I tweaked it a little to show a list and not have to use the AND().

IN( {
“C Note”,
“Monkey”,
“Le Dame Grande”
} ,
SELECT( Board Assignment[Board] , [Email Address] = USEREMAIL() ))= FALSE

Top Labels in this Space