在具有匹配ID号Excel的日期之前查找下一个日期

时间:2017-07-27 20:49:37

标签: excel date

我有一个200k以上的数据列表。我需要在特定日期之前搜索下一个订单日期,该日期与excel中的ID号匹配。我知道我可以使用索引匹配来查找给定日期之前的下一个日期,但是当我需要ID号来匹配给定ID时,我该怎么做?我附上了我正在搜索的数据的示例格式。问题还在于我没有搜索一系列日期,我需要在某个日期之前的下一个日期。在给定日期之前有多个日期,我需要先拉一个日期。

索引匹配公式以查找下一个给定日期。

= INDEX(订单!B:B,MATCH(MIN(ABS(订单!B:B-F3)),ABS(订单!B:B-F3),0))

import re

def delete_numbers(line):
   words = re.sub(r'\w*\d\w*', '', line).strip()
   for t in re.split(r',', words):
      if len(t.split()) == 1:
         words = re.sub(t, '',words)
         words = re.sub(',,', '', words)
   return words


fname = input("Enter file name: ")
file = open(fname,"r")
for line in file.readlines():
   words = delete_numbers(line)
   first_name = re.findall(r"([a-zA-Z]+)\s",words)
   for i in first_name:
      print(i)
   print("***")

a = ""
for t in re.split(r',', words):
  a+= (", ".join(t.split()[1:])) + " "

1 个答案:

答案 0 :(得分:2)

说明您的要求的另一种方法是B:B中找到< F3的最大日期,并在A:A ID中指定E3这正是以下公式的作用:

=AGGREGATE(14,6,Orders!B2:B999/(Orders!B2:B999<F3)/(Orders!A2:A999=E3),1)
  • AGGREGATE(14, ...., 1)获取给定数组中的最大结果

  • 按条件划分的分部将在与条件不符的数组条目中生成DIV!0

  • 参数6指示函数忽略错误条目,包括0

  • 之后的划分

请注意,虽然此公式不需要 CSE ,但它是基于数组的,因此请避免使用全列,因为它们会降低速度。选择足以跨越数据的合理行数(即A2:A999)。