=IF(K22;数组约束(过滤器(口袋2.0!A: E;口袋2.0!A: A;REGEXMATCH(口袋2.0!C:"MTC");K22=口袋2.0!A: A;O22=如果(AND(REGEXMATCH(口袋2.0!C:C;"MTC-.*$");TRUE())-1;1.)*口袋2.0!D: D);1.5.);)
如果我退出and,只放第一个语句,它就起作用了,但使用"and"和true,它会失败
and()
函数是一个聚合函数,不会像您期望的那样在数组公式中逐行给出结果。要使其工作,请使用布尔运算,如以下所示:
=filter(
Pockets2.0!A:E,
K22 = Pockets2.0!A:A,
regexmatch(Pockets2.0!C:C, "mtc"),
O22 = if( regexmatch(Pockets2.0!C:C, "mtc-") * (true = true), -1, 1 ) * Pockets2.0!D:D
)