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

时间:2019-09-22 13:10:27

标签: regex google-sheets google-sheets-formula array-formulas google-sheets-query

我有一个表,其中的列数可变。第一列是名称,其余列是类型,根据我的数据,其值为truefalse

我也有一个输入查阅列,其中包含类型的名称。

根据查找列中选择的类型,我想从来源返回名称 >包含任何所选类型类型的true的列。

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

可以将新行添加到表中,还可以添加新列(类型)。有人以为我要对 source 表中的每一行都有一个公式,根据 lookup 表中的内容检查列,但我想避免这种情况,因为新行/列可以添加到表中。

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

1 个答案:

答案 0 :(得分:1)

对于 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)&"'"))))

0


对于 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)&"'"))))