记住列的推理:不知道如何访问“This”值

时间:2012-07-04 17:48:14

标签: excel spreadsheet google-sheets

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

  • 每行
  • 如果单元格A包含文本“abc”,则在B列和
  • 上获取值
  • 如果B列上的值>比0:03:00返回0.9
  • 如果B列上的值是< 0:03:00和> 00:01:00返回0.6
  • else return 0.3
  • 将返回的值与所有其他值相加。

结果应该是这样的:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

使用CTRL + SHIFT + ENTER确认

或此版本的IFs [已编辑]

=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.3。 0:01,0.6。其中B> = 0:01且< 0:03和0:09如果B> = 0:09

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

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