Use multi-select control to filter view on People column

#1

Hello, Codans,
I just started using the system this weekend and am astounded by the possibility; this is such an exciting application!
I’m creating a tracker for my team and would like to give them the ability to: a) see just their stuff, b) select individuals, or c) everyone’s stuff in a single view. I’m using a multi-select control in conjunction with a checkbox control as suggested by @tomavatars :pray:, here: Quick "View" Function?.
As pictured below, I am using the following as the formula in the view’s filter:
=If(ckHome=true,[Assigned To].Matches(cHome),Home)

where Assigned To is a people type column, ckHome is the checkbox control, cHome is the multi-select control, and Home is the view.

While the helpful color guides show I am likely referencing all the right locations, once I apply the filter formula, 1) nothing changes on my view, and 2) the options for the multi-select go from {Select All, Sam, Elissa, Blank} to {Select All, Blank}.

Thought I would enlist the help of those much smarter than I am and ask how you all have achieved what I assume is a fairly common task.

Thanks in advance!
Sam

#2

Hey @Samuel_Davenport
First, the false value of your filter should be thistable, in order to show the full unfiltered table.
Then, what is the formula in your select control?
I would
a) not add this formula : =yourtable.assignedto
Because of you don’t have a user with an assigned task then you won’t see it on the control.
b) instead make another table with a row for each user. Then reference this column in the select control like : =UserTable.UserColumn.ToText()
And in the assigned to column a select list with the same formula.

#3

Thanks, @tomavatars, that did the trick.
Since the tableHome was a view, I referenced the people column in the underlying data table and so didn’t need to go the ToText() route.
What is the best way to write my falseBranch argument as !=blank so nothing without an assigned team member shows on the table? Would it be If(…, …, thisTable.Filtered(Not(IsBlank([Assigned To]))). No, no it would not. :slight_smile:

1 Like
#4

Ahhh, it may be I’m starting to get this whole chaining thing. However inelegant, the below works:
If(ckHome=true,[Assigned To].Matches(cHome),thisTable and [Assigned To].IsBlank().Not())

Making
(…, …, thisTable and [Assigned To].IsBlank().Not())
my falseBranch

#5

Hey @Samuel_Davenport
Glad it worked for you.
There is a isnotblank formula actually :slight_smile: and you could simply add as the false assignedto.isnotblank
I believe it’ll work.

1 Like
#6

Oh, sure. I knew that. … :man_facepalming:

Thanks!