google-sheets - 不同大小的数组
问题描述
我正在使用这个公式,但我遇到了一些麻烦: =ARRAYFORMULA(IF(A2:A="","",IF($B$2:$B>=Helper!$B$2:$B,1, 0)))
B2:B 列主表包含近 30k 行的值,而 Helper2 B 列表只有 60 个值,但表有 1000 行。
我正在检查 B(主工作表)中的值是否大于或等于 Helper B 列中的值。但我只得到主表中前 1000 行的结果。
谁能告诉我解决方法是什么?
错误是:GTE 的数组参数大小不同。
谢谢
解决方案
问题是两张纸的行数不相等。(GTE
在错误中意味着大于等于,这是您使用的条件)
消除错误的最简单方法是使两张纸的行数相同。如果您的Main
工作表有 30000 和Helper2
1000,则将 29000 添加到工作Helper2
表中。
但是如果你想限制你的ARRAYFORMULA
并且只比较到第 1000 行,那么限制范围。使用以下公式:
=ARRAYFORMULA(IF(A2:A1000="","",IF($B$2:$B>=Helper2!$B$2:$B,1,0)))
或者ARRAY_CONSTRAIN
用来限制你的结果ARRAYFORMULA
=ARRAY_CONSTRAIN(ARRAYFORMULA(IF(A2:A="","",IF($B$2:$B>=Helper2!$B$2:$B,1,0))), 999, 1)
- 限制为 999 行(因为您从第 2 行开始,工作表中的第 1000 行应该是第 999 行
ARRAYFORMULA
结果)
编辑:
试试这个:
=arrayformula(if(A2:A="","",if((B2:B <= vlookup(A2:A, Helper2!$A$2:$B, 2)) * (C2:C >= vlookup(A2:A, Helper2!$A$2:$B, 2)) > 0 = TRUE, 1, 0)))
笔记:
- 您的数据与您的 Artem 名称有问题,不知道为什么。因此,如果找到 Artem,则返回空白。
- 尝试将所有“Artem”更改为“John”,并且该公式可以无缝运行。