【问题标题】:Lookup a value if the dates fall between two dates如果日期介于两个日期之间,则查找一个值
【发布时间】:2014-03-06 13:43:16
【问题描述】:

我在两个单元格中有窗口日期。例如:

  • a1 = 1/1/2014 8:00
  • b1 = 1/4/2014 10:00
  • c1 = 11

在哪里

  • A 是开始日期
  • B 是结束日期
  • C 是窗口的代码

在单元格 d1 中,我有日期:2014 年 1 月 3 日 7:00

我想在 a/b 中查找日期,如果 d 介于这些日期之间,那么我希望它返回窗口的代码。

【问题讨论】:

  • 到目前为止你有没有尝试过?
  • 1) D1 是否有可能落入两个或更多窗口? 2) C 列总是包含数字?
  • 你想要这个 vba/excel 论坛吗?
  • 如果超出日期,你会返回什么?
  • 我想要一个excel代码。

标签: excel date lookup between


【解决方案1】:

假设您有多个“窗口”按顺序列出,没有间隙,不妨试试 LOOKUP 之类的

=LOOKUP(D1,A1:C10)

example

【讨论】:

  • 这不检查它是否在范围内?
  • 假设范围和范围之间没有间隙,您实际上不需要在范围内检查 - 查找将 D1 与相关的 A 列值匹配,并从 C 列返回正确的数字。如果 D1可能不在任何范围内,那么您可以添加一个简单的 IF,例如 =IF(D1>B10,NA(),LOOKUP(D1,A1:C10))
【解决方案2】:

您可以使用它,即使日期不按顺序也可以使用,只要 C 列中的值是数字。如果没有匹配则返回 0

=SUMPRODUCT((D1>=A1:A10)*(D1<=B1:B10)*C1:C10)

【讨论】:

  • 我在等待有人建议 SUMPRODUCT 或 SUMIFS,+1 - 我个人总是喜欢在需要单个值时使用“查找”类型的公式 - 它们也可用于检索文本值。 ..但这种方法有优势,例如可以有空格,不需要按你说的排序
  • 是的,最终,如果 C 列不是数字,我们添加一个匹配项来查找值 1,然后使用索引来获取该值。但是,在那种情况下,它将是一个数组公式......
【解决方案3】:
Cell 

a1      = 1/1/2014 8:00

b1      = 1/4/2014 10:00

c1      = 11

d1      = 1/3/2014 7:00

e1      =IF(AND($D$1-A1>0,B1-$D$1>0),C1,"outside")

【讨论】:

  • 我有 52 个窗口...所以我必须做 52 个嵌套的 if 语句
  • 这就是为什么 LOOKUP 很好 - 你可以一次检查所有 52 个窗口 - 看看我的答案
  • 您的查找不会检查它是否在两个日期之间。
  • 您的问题可能更清楚。您是否只想在您的问题中不存在的多行中查找哪些窗口,例如。 a1:c52 ?每行是一个不同的窗口?
  • 如果您想进行查找,请执行查找 $Cn==$En 的第一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
相关资源
最近更新 更多