Filter List (with a list) by another List

Morning all,

I’ve got a set of tables in airtable.
One contains a list, which itself has a list of records I want to filter on.
The other three are short lists of values to filter on.

List Table – appvar_NFR

   {
        "ID": "NFR002",
        "Category ID": ["recLZmLjCUIFm6uci"],
        "Name": "Peak Capacity and Volumes",
        "Description": "How many concurrent active users does the system need to support?",
        "Rationale": "The numbers of expected transactions and/or usage must be estimated in order to ensure the solution can deal with these and, meet expected performance requirements.",
        "Project Lifecyle ID": ["recPLnucPwe8KHyRU","recEYh0tQmkEPHOeV"],
        "Hierarchy ID": ["rec3FcLHK8Oo21Vmo"],
        "Acceptance Criteria": "N/A"
    },

Note “Project Lifecyle ID” here has two records in a list – although they are not named / identified.

One of the filter tables.
Appvar_ProjectLifecycle contains these two records always:
Note that one is currently marked on “Filter” as True, another as False.

{
        "id": "recPLnucPwe8KHyRU",
        "Description": "Something throwaway that doesn't need to be supported long term.",
        "Name": "Prototype",
        “Filter”: True,
},
{
        "id": "recEYh0tQmkEPHOeV", 
        "Description": "Something longterm that should be built properly.",
        "Name": "Project",
        “Filter”: False,
}

What I need to do, is:

  1. Select the records from “Appvcar_ProjectLifecycle” that have “Filter” marked as true (can be more than one).
  2. Look at “appvar_NFR”.“Project Lifecyle ID” list “Project Lifecyle ID”: ["recPLnucPwe8KHyRU","recEYh0tQmkEPHOeV"],
    and see if either of these IDs are in the filtered “Appvcar_ProjectLifecycle” list.
    In the example above, both are in that list.

The logic is that, if ANY of the listed IDs in "Project Lifecyle ID” are in the filtered “appvar_NFR”."Appvcar_ProjectLifecycle” list, then I want the record from that list to display.

I’ve tried various functions to do this (INTERSECTION,SOME,ANY,SELECT,IF) but I seem to be getting conflicts.
I’m not sure if its because one list is named and another is not.

What’s the best way to go about doing this?
Many thanks.

(Apologies for my badly named fields)

Would love to help if you could explain it a bit clearly.

What clarification do you need?

I have a list of objects, which have an attribute which is also a list.
I need to filter that list of objects, and just return the objects, where a there is any of the IDs in that attribute in another, separate, list of IDs.

It may be that I need to re-think how this information is stored based on the functionality available.

Ok. So

You will be adding appvars.NFR to the first dropdown. The source for the first dropdown will be

MAP(appVars.NFR, {“label”: item. Name, “value”: item.id})

Then you map the selected value for the dropdown to a variable say pageVars.selected_id

Then the source for the second list will be

MAP(SELECT(appVars.Project_Lifecycle, IS_IN_ARRAY(FIND_BY_KEY(appVars.NFR, “id”==pageVars.selected_id).project_lifecycle_id, item.id)), {“label”: item.Name, “value”: item.ID})

Do check if this works.