-1

我正在尝试执行以下操作:

  • 对于每一行
  • 如果单元格 A 包含文本“abc”,则获取 B 列的值和
  • 如果 B 列的值大于 0:03:00,则返回 0.9
  • 否则,如果 B 列的值 < 0:03:00 且 > 00:01:00 返回 0.6
  • 否则返回 0.3
  • 将返回值与所有其他值相加。

结果应该是这样的:

=IF(ISNUMBER(FIND("abc",INDIRECT(""&$A16&""&"!$D$2:$D"))),IF(INDIRECT(""&$A16&""&"!$D$2:$D")>"00:0300,???,???),?etc??)

???是缺失的部分。另外,INDIRECT()可以删除进行测试,但问题是???部分。我不知道如何获得 IF 语句的结果以及如何处理它。我想我不明白如何使用列。

4

1 回答 1

2

您可以在 excel 中像这样使用带有 LOOKUP 的“数组公式”

=SUM(IF(ISNUMBER(FIND("abc",A2:A100)),LOOKUP(B2:B100,{0,1,3}/1440,{3,6,9}/10)))

用 CTRL+SHIFT+ENTER 确认

或者这个带有 IF 的版本[编辑]

=SUM(IF(ISNUMBER(FIND("abc",A2:A100)),IF(B2:B100>="0:03"+0,0.9,IF(B2:B100>"0:01"+0,0.6,0.3))))

在 Google 电子表格中使用此版本

=arrayformula(SUM(IF(ISNUMBER(FIND(ʺabcʺ,A2:A100)),IF(B2:B100>=ʺ0:03ʺ+0,0.9,IF(B2:B100>ʺ0:01ʺ+0,0.6,0.3)))))

这将为在 A 列中的文本中找到“abc”且 B 列 >=0 但 < 0:01, 0.6 的每一行的总数增加 0.3。其中 B >=0:01 和 < 0:03 和 0:09 如果 B >= 0:09

使用 LOOKUP 可以更轻松地避免多个 IF,但我不确定它是否在边界上为您提供了正确的值,使用第二个版本更容易调整。如果需要,您可以调整范围长度并添加 INDIRECT。

注意:对第一个条件使用 FIND 意味着公式将在文本中的任何位置查找“abc”(区分大小写),如果您只想准确检查“abc”而没有其他文本,您可以使用range = " abc" [不区分大小写] 或EXACT(range "abc") [区分大小写]

于 2012-07-04T18:20:38.860 回答