当其他列为真时,使用查找列表从第一列获取值

get values from first column when other columns are true using a lookup list

我有一个 source table,其列数可变。第一列是 name,其余列是 type,根据我的情况,值为 truefalse数据.

我还有一个输入 lookup 列,其中包含 types 的名称。

根据在 lookup 列中选择的 type,我想 return 来自 source 列的名称 具有 true 任何选定的 types.

很难解释,所以我制作了一个示例 sheet,带有预期的输出和解释 https://docs.google.com/spreadsheets/d/1U7-Vz8tq-4E1Z6jkVFzsoIvW8VHRJNGw0oqDE1LUKOI/edit?usp=sharing 有示例输入和我的预期输出。

可以向 source table 添加新行,也可以添加新列 (types)。有人认为我要为 source table 中的每一行创建一个公式,根据 lookup table 中的内容检查列 table 但我想避免这种情况,因为可以将新的 rows/columns 添加到 source table.

我希望有一个 arrayformula 或高效的东西。我已经看了好几个小时了,但没有运气。我什至不知道从哪里开始...

对于 H9:

=ARRAYFORMULA(UNIQUE(TRIM(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(B3:F=TRUE, "♠"&B2:F2&"♦"&A3:A, )),,999^99)),,999^99), "♠")), "♦"), 
 "select Col2 where Col1 matches '"&TEXTJOIN("|", 1, G9:G)&"'"))))


对于 H3:

=ARRAYFORMULA(UNIQUE(TRIM(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(B3:F=TRUE, "♠"&B2:F2&"♦"&A3:A, )),,999^99)),,999^99), "♠")), "♦"), 
 "select Col2 where Col1 matches '"&TEXTJOIN("|", 1, G3:G6)&"'"))))