That did work. Thanks Jeff. My only glitch now is when I am looking at their details card and see the office list below, that persons picture is there too. Not that it’s a big deal, which I am beginning to not mind, but how cold I omit that person from appearing in the office list when I am looking at their details card: to maintain the “Other People in this office” list without seeing them too?
Darren,
That sounds amazing. I am glad my problem brought Jeff in with that solution for you too!
You should be able to filter the list using Screen Values where the name is not the name of the current contact being viewed.
Thank you Jeff. That makes so much sense. I truly enjoy learning these bits that allow me to re-evaluate my problem solving skills!
Hi Jeff,
This solution looks great, but I couldn’t get it to work
I’d like to check if a client name is repeated, so we can put a warning text for the users to notice there is more than one client with the same exact name. I think that I did what you mentioned:
-
Relation column - client name to itself
-
SV column - last ROW ID
-
ITE column - current ROWID to SV column
What Have I missed?
And what was the result? What you are showing looks OK if that is the intended result you want, although it might not apply to your particular situation. What is the problem you are running into? What is not working? Your current setup should mark each duplicate row as ‘true’, except for the last row within a same name, or any row that is not a duplicate. Last row names and non duplicate names will be false with the way you have set up your columns.
But, wouldn’t it be more beneficial for your use case if you kept the same relation, but got rid of the single value and IF columns and replaced them with a Rollup Count column instead? Then any name with a count greater than 1 would be a duplicated name.
Thanks, that works perfectly!
Hey, this actually worked great for me! Would you mind explaining the formula? It worked for me but I don’t really understand it.
The logic goes like this:
For every cell in the range A2 to the end of column A, let’s call this cell A(x). If it is empty, return an empty value.
Else, count all cells that has the same value as cell A(x), and having its row number less than or equal to the current row we’re looking at.
I have a variation on this problem. I have an array column that is filled with other users who match any book on the current user’s book list. For a given user, there may be duplicate values in the array since other users may match on more than one book.
When I display a list based off the lookup and joined list from the array, I get duplicate users in the listing since they matched the current user on more than one book.
Is there a way to filter and only get the other users’ name once? Or do I need to redesign the underlying data?
Thank you for any help.
You can try using the Unique Elements plugin column to eliminate duplicates from an array.
This works and the new field has no duplicates. But when I display a list from the new field, it has duplicates. Will keep playing with it.
Thank you
Well, how are you displaying the list? Based on your description, I assumed you were creating a Joined List from that array, with maybe a carriage return as the delimiter, and then display it in a text or rich text component. My thought was to point the joined list at the new array created from the Unique Elements array column. If not, I guess I’m not clear on what you are trying to do.
One curveball in here that may be causing the problem. My array is a list of items the user has selected. I create a relation column that gives me the other users who also list those items on their profiles. (Other users can match on more than one product, so without the unique feature, I get multiple entries of a user name.) I build the array and unique joined list from the relation. The unique joined list looks good in the table, but still displays duplicates. I tried listings and text fields for display. Seems like the relation is causing the problem?
I think I need to see some screenshots of the data and how your columns are configured, as well as how you are attempting to display it in the app. I think I’m missing some key details here.
Explanation of columns:
array17 creates an array of books from column 17, which is populated by the choice function
unique17 uses the unique feature to eliminate duplicates from array17
uniqueRelate uses the relation column to populate users who are connected to the books
uniqueLookup pulls the users from uniqueRelate
uniqueJoined pulls data from uniqueLookup
Thank you for any help
The Unique Elements should be applied to the Lookup Column and also the Unique Elements should be the source of your joined list. So your flow should look like…
Lookup → Unique Elements → Joined List
Worked. Thank you both.
Well, I spoke too soon.
Array is created with list of the user’s books. Relation is created to match other users whose book list array intersects with the current user’s. If users intersect on more than one book, the user’s name shows up more than once. Lookup field applied to the array, then the unique elements field is applied (which eliminates duplicate, triplicate users). Joined List applied to unique elements and looks good.
When I do an inline list to see what other users match to the current user, I filter to include any user that “is included in” the joined list. Still getting duplicates.
Any ideas are welcome.
I think we’ve gone full circle back to the original solution I provided in this thread.
That’s why I asked how you are displaying the list. Now it’s clear that you are using an inline list/collection to display that list. Since it sounds like you just want user names, you have two options.
- One is to follow my original solution to eliminate duplicate names from the list, then use the final IF column as a filter for your list/collection.
- The other option is to get your array of users from the lookup column, and then use that to create a relation to a separate table that only contains the user information instead of the table that logs who read what.