Show only the 3 most recently added rows that match a certain value

I have a HUGE Coda Doc with lots of master and child tables and dashboards that present views of other tables. It’s essentially a Customer Success Platform built in Coda. Here’s my question.

On my dashboard I want to display only the three most recent rows (in my master meeting notes table) that match the name of the customer I’m currently looking at.

E.g. I am looking at the dashboard for my activity with Acme Corp. I want to have a view of the Master Meeting Notes table that only shows the 3 most recent meetings with Acme Corp. I’ve been filtering it by date and that’s fine, I guess but just would rather see the three most recent meetings regardless of time. I think it would need to involve RowID() but I’m not terribly sure how to just pull the three most recent rows using RowID(). Wasn’t sure if there was another formula I should be thinking of.

Lane

Have you tried using Modified (https://coda.io/formulas#Modified)?

Also, why does using the time and date of the meetings not work?

Time and date doesn’t work because if I do an on site meeting and have 15 different engagements then I don’t want all if them to appear on the dash oard as they will clutter things up. Also, if a stakeholder is out of town for a couple if weeks then nothing will show on the dashboard but that doesn’t mean I wasn’t engaged. I want just the 3 most recent meetings to appear.

I’m not familiar with Modified(). I’ll look into it. How would you use Modified() to just desplay the three items most recently modified?

Thanks for the clarification. Do you have meeting times as a data point?

Hi Lane, here is a way to rank and filter by Top 3 -

Let me know if you can get this working for your scenario.

1 Like

Here are another community posts on this - Using Slice to limit the rows in a view (return Top n rows)

1 Like

Meeting times are not currently in my model.

Unfortunately that doesn’t do what I need. See, the top 3 are being sourced from a master table of hundreds of values. Each value is a cell named “Customer” in it. I want the view to only present the most recent 3 rows where the “Customer” cell matches the value in a control on the page. Let’s say the three customers are dealing with are A, B, C. There are a hundred rows in the table and all of them have either A, B, or C in the “Customer” cell. I select “A” in my control. I want the table view to just show the most recent 3 rows containing “A”.

I feel like there could be a more efficient way, but I do have this working on a table where there are more than 3 entries for each of the customers, A, B, and C…

CloudApp

The Customer control selector is named: SelectCustomer

And here are the formulas used:

Data Modified Column:

=Modified(thisRow)

Rank Column:

=Rank(thisRow.[Data Modified],thisTable.[Data Modified])

Rank List Column:

=Filter(thisTable,Customer=SelectCustomer).Rank.Sort().Slice(1,3)

And the Filter for the whole table:

=(Customer=SelectCustomer) AND Rank.Contains([Rank List])
3 Likes


Updating image above. : )

3 Likes