Google sheets 谷歌电子表格:ArrayFormula和Filter
我意识到这个标题有很多问题,但我不明白它们的答案,或者它与我的问题没有直接关系 我试图避免手动“拖动”公式来为每一行复制它 公式是这样的Google sheets 谷歌电子表格:ArrayFormula和Filter,google-sheets,Google Sheets,我意识到这个标题有很多问题,但我不明白它们的答案,或者它与我的问题没有直接关系 我试图避免手动“拖动”公式来为每一行复制它 公式是这样的 =IF(ISBLANK(A6), "", COUNT(FILTER(Data!C$2:C, Data!A$2:A = A6, Data!B$2:B >= B$2, Data!B$2:B <= B$3,
=IF(ISBLANK(A6),
"",
COUNT(FILTER(Data!C$2:C,
Data!A$2:A = A6,
Data!B$2:B >= B$2,
Data!B$2:B <= B$3,
Data!C$2:C >= E$3,
Data!C$2:C <= E$2)))
其中A6:A
似乎对A
列中的每个单元格都正确求值。但是,数据
表中的范围似乎也计算为单个值,而不是范围
我是否遗漏了一些东西,或者我不明白
ARRAYFORMULA
是如何工作的?过滤器本身就是一个ARRAYFORMULA→ 它不能用于其他数组公式,因为工作表无法处理数组数组
变通办法
您正在查找countifs
arrayFormula,该公式通过mmult
求解:
=arrayformula(转置)(MMULT)(转置((数据!B$2:B>=B2)*(数据!B$2:B=B2)*)(数据!B$2:B过滤器
本身就是一个arrayformula→ 它不能用于其他数组公式,因为工作表无法处理数组数组
变通办法
您正在查找countifs
arrayFormula,该公式通过mmult
求解:
=arrayformula(转置(MMULT)(转置)(数据!B$2:B>=B2)*(数据!B$2:B=B2)*(数据!B$2:Bun幸运的是,这似乎不起作用。与您的类似:不幸的是,这似乎不起作用。与您的类似:“--”起什么作用?它是必需的?它让人想起SQL注释。--
将布尔真/假转换为1/0。mmult
函数使用数字,而不是布尔值。另一种方法是mul按1(*1
)或加0(+1
)做什么?“--”是必需的?这让人想起SQL注释。--
将布尔真/假转换为1/0。mmult
函数使用数字,而不是布尔值。另一种方法是乘以1(*1
)或加0(+1
)
=ARRAYFORMULA(IF(ISBLANK(A6:A),
"",
COUNT(FILTER(Data!C$2:C,
Data!A$2:A = A6:A,
Data!B$2:B >= B$2,
Data!B$2:B <= B$3,
Data!C$2:C >= E$3,
Data!C$2:C <= E$2))))