【问题标题】:Matching Id's, if id matches check if a certain date is between a beginning and ending date匹配 ID,如果 id 匹配,检查某个日期是否在开始日期和结束日期之间
【发布时间】:2017-05-04 17:48:33
【问题描述】:

在我找到匹配的 ID 后,我有一个关于如何检查某个日期是否介于两个日期之间的问题。如果那不是真的,我想检查下一个匹配 id 的日期等等。

我尝试过使用 INDEX(MATCH()) 函数并搜索了论坛,但无法弄清楚这一点。如果是公式或 VBA 代码,没问题。

这是我要比较的表格示例。

 Sheet 1
 Id    Date
 1     05-06-2017
 1     06-11-2017
 1     09-25-2017
 2     05-12-2017
 2     06-14-2017
 3     09-30-2017
 4     01-06-2017       
 4     05-20-2017  

 Sheet 2
 Id    Start Date        End date
 1     01-01-2017        02-01-2017
 1     03-15-2017        03-20-2017
 1     09-05-2017        09-28-2017
 2     05-10-2017        05-11-2017
 2     05-12-2017        05-20-2017
 3     09-01-2017        10-02-2017
 4     01-01-2017        01-07-2017
 5     05-01-2017        05-25-2017

我想检查工作表 1 中的 id 是否存在于工作表 2 中。之后,我想检查工作表 1 中的 id 日期是否介于与工作表 2 中的 id 匹配的开始日期和结束日期之间。问题是有是我不能让excel来检查下一个匹配的id是否在开始和结束日期之间,如果第一个不是真的等等。

我首先尝试的是: =INDEX(Sheet2 A:A;MATCH(Sheet1A1;Sheet2A:A;1;0)) 这给了我 id。

然后我尝试了:

=IF(INDEX(Sheet2 A:A;MATCH(Sheet1A1;Sheet2A:A;1;0))=A1;IF(AND(B1>=Startdate;B‌​1<=Enddate);"True";"‌​False");"")

【问题讨论】:

  • 如果是公式或 VBA 代码,没问题 - 在 SO 上,大多数时候 if you don't show your efforts and where it's failing 是个问题。我们很乐意帮助调整您无法使用的代码/公式,但没有多少人会为您编写完整的解决方案。
  • 点了。我首先尝试的是: =INDEX(Sheet2 A:A;MATCH(Sheet1A1;Sheet2A:A;1;0)) 这给了我 id。然后我尝试了 =IF( =INDEX(Sheet2 A:A;MATCH(Sheet1A1;Sheet2A:A;1;0))=A1;IF(AND(B1>=Startdate;B1
  • 在那之后我想提前过滤表 1 列 A 唯一值。然后使用 For 循环检查工作表 2 上的每一行。但这会非常慢。
  • 您要检查 sheet1 中 id 的第一个实例与 sheet2 中 id 的第一个实例吗?或者第一个表中 id 1 的第一个实例可以在任何 start | 之间。 id 1 的 sheet2 中的结束日期?
  • 没错,斯科特。

标签: vba excel date


【解决方案1】:

使用这个公式:

=IF(ISNUMBER(MATCH(1,INDEX((Sheet2!$A$2:$A$9=A2)*(Sheet2!$B$2:$B$9<=B2)*(Sheet2!$C$2:$C$9>=B2),),0)),"Exists","Does not Exist")

【讨论】:

    【解决方案2】:

    试试这个...

    在 Sheet1 上

    在 C2 中

    =AND(ISNUMBER(MATCH(A2,Sheet2!$A$2:$A$9,0)),SUMPRODUCT((Sheet2!$A$2:$A$9=A2)*(B2>=Sheet2!$B$2:$B$9)*(B2<=Sheet2!$C$2:$C$9))>0)
    

    然后复制下来。

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 2017-12-26
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2018-04-03
      • 1970-01-01
      相关资源
      最近更新 更多