使用一系列值和解析文本在 vlookup 的结果中进行搜索

Searching within the result of a vlookup using a range of values and parsing text

我的目标:

从 vlookup 的结果中解析 MM/DD 日期,以便它可以用于项目计划

背景:

当前公式

编辑
(根据您在 sheet 上的注释:“我想完全删除 col b 并嵌套在 col c 和 d 的公式中”)

您可以调整范围 B2:B,方法是将其替换为 B2 中已有的公式。

调整后的新公式将变为

=ArrayFormula(IFNA(SPLIT(REGEXEXTRACT(VLOOKUP(ARRAYFORMULA(sort(unique(data!A2:A))),data!$A:$C,2),"\d+\/\d+-\d+\/\d+"),"-")))

原回答

您可以使用以下公式:

=ArrayFormula(IFNA(SPLIT(REGEXEXTRACT(B2:B,"\d{2}\/\d{2}-\d{2}\/\d{2}"),"-")))

确保将结果格式化为Date
(请根据需要调整范围)

使用的函数:

我在 B2 广告 C2 中设置了一个名为“Erik Help”的 sheet,其中包含以下公式:

=ArrayFormula(IF(A2:A="","",MID(VLOOKUP(A2:A,data!A2:B,2,FALSE),FIND(REGEXEXTRACT(VLOOKUP(A2:A,data!A2:B,2,FALSE),"[0-9]-[0-9]"),VLOOKUP(A2:A,data!A2:B,2,FALSE))-4,5)))

=ArrayFormula(IF(A2:A="","",MID(VLOOKUP(A2:A,data!A2:B,2,FALSE),FIND(REGEXEXTRACT(VLOOKUP(A2:A,data!A2:B,2,FALSE),"[0-9]-[0-9]"),VLOOKUP(A2:A,data!A2:B,2,FALSE))+2,5)))

分别

它们可能比实际需要的要长,但您没有在 B 列中分享实际结果,也没有列出 B 列中除了日期之外可能出现的符号;所以我试图解释可能出现在 B 列中日期跨度以外的地方的连字符或正斜杠。

您的分析 sheet 还显示了一个对数据结果进行排序的公式!A:A。因此,即使在您的示例中,原始数据顺序恰好与分析中的顺序相同!A:A,这不是给定的(同样,基于您的公式)。所以VLOOKUP也是必须的

您没有说明是否需要进一步使用这些返回的date-snippets计算,或者您是否只需要查看 他们。所以“Erik Help”中生成的结果是文本。

如果您想要可用 numbers/dates,您可以在公式中添加更多需要控制的问题,因为您将只提取月和日,而不是年。现在很好。但是当要提取的日期范围是“12/28-01/13”时呢?如果你只是让这些 values/dates,它们将 both 分配给当前年份。所以这里的结束日期会早于开始日期。

因此,我添加了第二个 sheet,“Erik Help 2”,其中包含扩展的公式来解释这些情况,同时仍然返回您想要的日期格式作为实际日期,可以是用于计算。

尝试:

=ARRAYFORMULA(IF(A2:A="",,IFNA(TEXT(SPLIT(REGEXEXTRACT(
 VLOOKUP(data!A2:A, data!A:C, 2), "\d+/\d+-\d+/\d+"), "-"), "mm/dd"))))