Google表格公式包含可变数量的不相交列

问题描述 投票:0回答:1

在表格中,我有多个具有相似含义的不相交列:“这一行有趣吗?”

我想创建一个数组公式来获取所有有趣的行。我怎么处理这个?

示例表:

Obj id | Case 1 data | Case 1 interesting? | Case 2 data | Case 2 interesting?
     1 |       …     |        YES          |     …       |       NO
     2 |       …     |         NO          |     …       |       NO
     3 |       …     |         NO          |     …       |      YES
     4 |       …     |         NO          |     …       |       NO
     5 |       …     |        YES          |     …       |      YES
     6 |       …     |         NO          |     …       |       NO

实际表格被分成几张,每张纸上有不同的ID子集。

我当前的方法是卡在INDIRECT函数不接受数组或范围。我首先搜索我的列:FILTER(COLUMN(A1:1), REGEXMATCH(A1:1, "interesting")),然后我将列地址转换为范围,但是当我将结果提供给INDIRECT时,它只返回第一列。

期望的公式将输出唯一对象id的数组,其中每行对于至少一个案例是有趣的。

更新:这是这个问题的test table。共有3张:带有ID的学生数据和2个程序。每个程序都有几个考试(事先不知道。所需的公式将输出一系列独特的学生ID,至少有1个通过考试(在测试表中:1,3,4,6)

google-sheets google-sheets-formula
1个回答
1
投票
={"Passing"; ARRAYFORMULA(UNIQUE(QUERY({
 IF(IFERROR(REGEXEXTRACT(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(
 TRANSPOSE('Program 1'!A1:Z), , 999^99))), "Pass", "♠"), "♠"))="♠", 'Program 1'!A1:A, );
 IF(IFERROR(REGEXEXTRACT(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(
 TRANSPOSE('Program 2'!A1:Z), , 999^99))), "Pass", "♠"), "♠"))="♠", 'Program 2'!A1:A, )},
 "where Col1 is not null order by Col1", 0)))}

0


如果你想要VLOOKUP它:

=ARRAYFORMULA(IF(LEN(A2:A), IF(IFERROR(VLOOKUP(A2:A, UNIQUE(QUERY({
 IF(IFERROR(REGEXEXTRACT(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(
 TRANSPOSE('Program 1'!A1:Z), , 999^99))), "Pass", "♠"), "♠"))="♠", 'Program 1'!A1:A, );
 IF(IFERROR(REGEXEXTRACT(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(
 TRANSPOSE('Program 2'!A1:Z), , 999^99))), "Pass", "♠"), "♠"))="♠", 'Program 2'!A1:A, )},
 "where Col1 is not null", 0)), 1, 0))<>"", "PASS", "FAIL"), ))

0

© www.soinside.com 2019 - 2024. All rights reserved.