【问题标题】:Using Excel to find specific dates within a long list of dates使用 Excel 在长长的日期列表中查找特定日期
【发布时间】:2016-04-06 04:23:35
【问题描述】:

我使用了一种算法来生成事件列表,每个事件都表示为日期 (YYYY,MM,DD)。为了验证算法的准确性,我必须将生成的事件列表与手动验证的事件列表进行比较。我希望使用excel来做到这一点。这是手动验证事件的列表。它们的顺序是随机的。

2003    8   11
2012    11  19
2005    6   17
2007    8   26
2002    8   6
1999    10  11
2001    2   10
2012    9   16
1998    9   17
1997    9   21
2012    9   30
2002    9   21
2014    6   2
2002    7   21
2012    11  18
2008    11  7
2007    10  3
2002    5   24
1998    7   18
2003    3   28
2005    9   29
2012    8   19
2011    1   29
2009    12  24
1998    9   26
2011    1   25
2010    3   26
2007    5   31
2010    1   28
2003    9   23
2009    2   21
2010    8   14
2000    1   29
2001    7   13
2006    7   10
2004    5   21
1999    5   29
2002    6   15
2007    10  4
2008    8   21
2000    9   6
2002    1   8
2005    10  14
1998    2   17
2008    12  10
2004    10  19
2005    3   5
2010    8   19
1997    8   18
2006    7   12
2008    3   27
1999    3   5
2001    10  6
2012    9   4
2009    6   14
2000    8   19
2002    10  29
2014    4   17
2001    11  17
1998    10  3
2009    2   15
2004    5   3
2014    3   16
2012    4   21
2009    2   24
2002    7   1
2002    8   1
2010    2   13
2004    9   16
2013    10  6
1999    4   19
2009    1   30
2005    5   16
1999    3   4
2012    9   13
2006    4   12
2013    9   15
2001    11  2
2011    1   3
2004    12  23
2001    11  16
2010    7   17
2004    2   21
2011    12  26
2013    8   30
2005    1   16
2008    8   3
2007    10  13
2004    8   27
2003    10  17
2001    4   20
2003    11  6
1998    12  26
2008    9   22
1997    11  12
2006    7   5
2014    4   5
2014    4   24
1998    8   20
2010    10  27
2006    7   30
1998    3   17
2008    12  31
2014    4   19
2003    3   22
2008    10  3
2007    9   28
2010    4   3
2006    11  17
2014    1   3
2012    7   26
2005    3   24
1999    8   20
2010    10  21
2009    4   16

我的算法生成的事件格式相同(年、月、日),大约有 3000 个事件。示例数据如下。

2000    3   23
2000    3   28
2000    3   31
2000    4   1
2000    4   2
2000    4   3
2000    4   4
2000    4   12
2000    4   18
2000    5   1
2000    5   4
2000    5   5
2000    5   24
2000    6   20
2000    7   25
2000    8   7
2000    8   20
2000    8   22
2000    8   26
2000    8   27
2000    8   28
2000    8   29
2000    8   30
2000    9   1
2000    9   3
2000    9   4
2000    9   5
2000    9   6
2000    9   7
2000    9   15
2000    9   20
2000    9   21
2000    9   24
2000    9   25
2000    9   29
2000    9   30
2000    10  2
2000    10  4
2000    10  5
2000    10  10
2000    10  11
2000    10  12
2000    10  14
2000    10  17
2000    10  18
2000    10  19
2000    10  21
2000    10  22
2000    10  23

如果我的算法是准确的,那么显示的顶部数据集应该是第二组数据的子集。是否有某种方法可以使用 excel 有效地搜索较大数据集中每个手动验证日期的出现?如果是这样,Excel 能否告诉我顶部数据集中的哪些日期包含在第二个数据集中?

【问题讨论】:

  • 假设您的数据在 A、B 和 C 列中,在 D 列中使用 =DATE(A2,B2,C2) 生成常规的 Excel 日期值。对两组数据执行此操作。然后,对于数据子集,使用 =IF(ISERROR(VLOOKUP(D2,origdataSht!$D$2:$D$2000,1)),"Not Found","Found") 之类的东西,其中 origdataSht 是包含原始数据的工作表的名称。编辑:如果您的数据不正确,则查找应为VLOOKUP(D2,origdataSht!$D$2:$D$2000,1,FALSE),以便查找确切值。

标签: excel date excel-formula


【解决方案1】:

有了你提供的数据,以及我上面评论中的公式......

【讨论】:

  • 您好 OldUgly,感谢您的回复。我已尝试按照您的描述实施。不过我有几个问题。当您创建日期时,您的年份表示为两位数,例如 07 而不是 2007。当我尝试使用日期功能时,它给了我四位数字(例如 2007 年)。这会像您建议的那样弄乱代码吗?
  • 另外,当我实现代码时,它几乎完全“找到”了它产生的代码,但是当我手动检查时,有很多情况下它说发现该日期实际上并不存在于第一个数据集中。在您的公式中,读取 $D$2000 的部分有什么意义?
  • 如果我为 vlookup 指定 False 它似乎功能更好,正如您在评论中指出的那样
  • 用于表示年份的位数由单元格的格式决定——它不会改变单元格的值,因此不会影响 vlookup 的工作方式。为了防止错误的结果,需要在 vlookup 中指定 FALSE。
  • $D$2000 是要查找的范围中的最后一个单元格。我举了一个例子。您的公式将使用您最后一个单元格的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
相关资源
最近更新 更多