Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 不相交列数可变的Google Sheets公式_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google sheets 不相交列数可变的Google Sheets公式

Google sheets 不相交列数可变的Google Sheets公式,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,在表中,我有多个不相交的列,其含义类似:“此行有趣吗?” 我想创建一个数组公式来获取所有感兴趣的行。我怎样才能做到这一点 示例表: Obj id | Case 1 data | Case 1 interesting? | Case 2 data | Case 2 interesting? 1 | … | YES | … | NO 2 | … | NO

在表中,我有多个不相交的列,其含义类似:“此行有趣吗?”

我想创建一个数组公式来获取所有感兴趣的行。我怎样才能做到这一点

示例表:

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子集

我目前的方法是使用
间接
函数,不接受数组或范围。我首先搜索我的列:
FILTER(列(A1:1)、REGEXMATCH(A1:1,“有趣”))
,然后将列地址转换为范围,但当我将结果馈送到
INDIRECT
时,它只返回第一列

所需的公式将输出一个唯一的对象ID数组,其中每一行至少有一种情况是有趣的

更新:这里有一个解决这个问题的方法。共有3页:学生数据和ID以及2个程序。每个程序都有几个考试(事先不知道。所需的公式将输出一个唯一的学生ID数组,其中至少有一个通过了考试(在测试表中:1、3、4、6)


如果您想
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"), ))
=ARRAYFORMULA(IF(LEN)(A2:A),IF(IFERROR)(VLOOKUP)(A2:A,UNIQUE)(查询({
如果(IFERROR)(REGEXEXTRACT)(REGEXREPLACE)(TRIM)(TRANSPOSE)(查询(
转置('Program1'!A1:Z),999^99)),“通过”♠"), "♠"))="♠", '程序1'!A1:A,);
如果(IFERROR)(REGEXEXTRACT)(REGEXREPLACE)(TRIM)(TRANSPOSE)(查询(
转置('Program2'!A1:Z),999^99)),“通过”♠"), "♠"))="♠“,‘程序2’!A1:A,)},
“其中Col1不为null”,0),1,0),“通过”,“失败”),)

有趣的列是否不在固定/已知位置?@player0否,并且它们的数量随着新案例的增加而不断增加从您的示例中,您只需要第5行?或第1,3和5行@player0在本示例中:1,3,5。我无法共享原始表,但我做了一个(希望如此)足够的测试示例,请查看更新的帖子我是否正确,在这里您不是在特定列中查找“通过”,而是在整个工作表中查找?这对我也适用,我只是没有考虑过。我所做的是:我将所有列合并为一列,并将所有“通过”转换为一列然后正则表达式从每行中只输出一个黑桃。然后将所有黑桃转换回“通过”或相应的ID
=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"), ))