【发布时间】:2020-01-11 01:05:58
【问题描述】:
我正在 Google 表格中编写公式。这是公式;
=IF(COUNTIFS(C$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),3), C3, E$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),5), E3, F$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),6), "<>0") > 1, "MULTIPLE POSITIVE LBS THAT'S GREATER THAN ZERO", MINUS(F3, SUMIFS(G$3:G$480, C$3:C$480, C3, E$3:E$480, E3)))
现在公式的工作原理是这样的,但它只对第 3 行和第 480 行之间的值求和。我想要做的是获取第 3 行和最后一个非空字段之间的所有值。为了实现这一点,我使用了这个公式;
ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A)))
我能够使这个公式适用于 countif 函数,但是当我在 sumif 函数中使用相同的公式时,它给了我 Argument must be a range 错误。
这是第二个版本(给出错误的那个)
=IF(COUNTIFS(C$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),3), C3, E$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),5), E3, F$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),6), "<>0") > 1, "MULTIPLE POSITIVE LBS THAT'S GREATER THAN ZERO", MINUS(F3, SUMIFS(G$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),7), C$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),3), C3, E$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))),5), E3)))
我还尝试让ADDRESS 函数在完全不同的单元格中独立工作,并提供正确的地址。
这是我第一次写表格或任何类型的 Excel 公式,所以我找不到问题的根源。我做错了什么?
【问题讨论】:
-
ADDRESS 返回一个字符串,而不是一个范围。您要么必须将其包装在 INDIRECT 中,要么使用 INDEX 公式,例如:
C$3:INDEX(C2:C,COUNT(A2:A))而不是C$3:ADDRESS(ROW(INDEX(A2:A,COUNT(A2:A))) -
C$3:INDEX(C2:C,COUNT(A2:A)) 非常感谢。虽然它返回整个 C 列的数量还是最后一个非空单元格?
-
它根据 A 中有多少单元格中有数字返回 C 列中的一个单元格。
-
好的,知道了。 INDEX 成功了,公式现在起作用了。谢谢。
标签: google-sheets google-sheets-formula