如何将COUNTIFS+IMPORTRANGE公式转为可自动填充的数组公式?
解决方案
方法1:自动溢出(无需下拉,一次性计算所有行)
用LET+BYROW组合,既减少IMPORTRANGE的重复调用(提升效率,避免触发调用限制),又能自动对A列每行数据进行统计,结果自动向下填充:
=LET( 导入数据, IMPORTRANGE("https://docs.", "Transactions!F:F,J:K"), 日期列, INDEX(导入数据,,1), Yes列, INDEX(导入数据,,2), 匹配列, INDEX(导入数据,,3), BYROW(A3:A, LAMBDA(当前匹配值, IF(当前匹配值="",, COUNTIFS(日期列, ">="&B1, 日期列, "<="&B1+6, Yes列, "yes", 匹配列, 当前匹配值)))) )
说明:
LET函数一次性导入需要的3列数据(F列日期、J列yes/no、K列匹配值),只调用一次IMPORTRANGEBYROW遍历A3及以下的每个单元格,对每个值执行条件统计- 空行自动返回空白,避免显示多余的0
方法2:手动下拉适配(公式自动对应当前行A列值)
如果习惯手动下拉公式,用INDEX+ROW替代固定的A3,下拉时自动匹配当前行的A列单元格:
=COUNTIFS(IMPORTRANGE("https://docs.", "Transactions!F:F"), ">="&B1, IMPORTRANGE("https://docs.", "Transactions!F:F"), "<="&B1+6, IMPORTRANGE("https://docs.", "Transactions!J:J"), "yes", IMPORTRANGE("https://docs.", "Transactions!K:K"), INDEX(A:A, ROW()))
说明:
INDEX(A:A, ROW())会自动获取公式所在行的A列单元格值,下拉时ROW()变为4、5...,对应A4、A5等- 缺点是每次下拉都会重复调用
IMPORTRANGE,效率较低,数据量大时可能卡顿
内容的提问来源于stack exchange,提问作者azscott99
相关产品推荐
相关产品推荐

