首页 > 解决方案 > 不同大小的数组

问题描述

我正在使用这个公式,但我遇到了一些麻烦: =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 的数组参数大小不同。

谢谢

这是电子表格的链接 https://docs.google.com/spreadsheets/d/1hfXCFTp_vLqPFjazM-Vo6-3o8J1td1zpnCJOeK1LBg0/edit#gid=511305173

主表

Helper2 工作表

标签: google-sheetsgoogle-sheets-formula

解决方案


问题是两张纸的行数不相等。(GTE在错误中意味着大于等于,这是您使用的条件)

消除错误的最简单方法是使两张纸的行数相同。如果您的Main工作表有 30000 和Helper21000,则将 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”,并且该公式可以无缝运行。

推荐阅读