使用一定范围的值并解析文本在vlookup结果中搜索

问题描述

我的目标:

根据vlookup结果解析MM / DD日期,以便可以在项目计划中使用

背景:

  • vlookup结果包含多个用“•”分隔的值(我不需要全部)
  • 我要解析的值在vlookup结果中并不总是位于同一位置(否则我可以使用RIGHT公式)
  • 我要检索的值是有限的(我已经知道了)
  • 我要检索的值包含一些带有日期范围的文本;我只想要日期范围(MM / DD)中的前四个值
  • 我想用一个公式来实现所有这些,并在单个单元格中得到结果

当前配方

  • 我一直在努力的公式不起作用:

    =ARRAYFORMULA(if(iserror(search(Iterations!D2:D7,(VLOOKUP(A2,'Results {2596503}'!$C$2:$L$183,3)))),))

解决方法

编辑
(在工作表上留下您的注释:“我想完全删除col b并嵌套在col c和d中的公式中”)

您可以通过将范围B2:B替换为B2中已经存在的公式来调整范围。

新调整后的公式将变为

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

原始答案

您可以使用以下公式:

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

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

enter image description here

使用的功能:

,

我在B2广告C2中使用以下公式设置了名为“ Erik帮助”的工作表:

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

=ArrayFormula(IF(A2:A="",FALSE))+2,5)))

分别。

它们可能比实际需要的时间更长,但是您没有在B列中共享实际结果,也没有列出日期以外的其他符号可能出现在B列中;因此我试图说明在日期跨度之外的其他地方,B列中可能出现的连字符或正斜杠。

您的分析表还显示了一个用于对数据结果进行排序的公式!因此,即使在您的示例中,原始数据顺序也恰好与Analytics!A:A中的顺序相同,但这并不是给定的(再次基于您的公式)。因此,VLOOKUP也很有必要。

您没有指出是否需要在计算中进一步使用这些返回的日期片段,或者是否只需要查看。因此,“ Erik帮助”中生成的结果是文本。

如果您想要可用的数字/日期,则可以添加需要在公式中控制的其他问题,因为您将只提取月份和日期,而不是年份。现在很好。但是,要提取的日期范围是“ 12 / 28-01 / 13”怎么办?如果您仅将这些值/日期设为两者,则将它们分配给当前年份。因此,这里的结束日期早于开始日期。

因此,我添加了第二张表“ Erik Help 2”,其中包含扩展公式以说明这些情况,同时仍返回所需的日期格式作为可用于计算的实际日期。

,

尝试:

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

enter image description here