PowerQuery(M):如何从大文本字段中提取日期?

时间:2017-05-11 14:54:58

标签: excel string powerquery excel-2016 m

我的表有一个名为Remarks的文本列,通常包含大量文本。

以下是一个例子:
3/24/2017 11:14:41 AM - EMD FOR STATUS NFU 3/30/17
3/30/2017 10:58:03 AM - CLD PER RECEPTIONIST GM UNAVAILABLE NFU 04-13-2017
4/13/2017 11:10:15 AM - CLD PER RECEPTIONIST将提供信息 NFU4 / 27
4/27/2017 9:02:20 AM - MLD INV与90天印章
4/27/2017 9:15:03 AM - PER REP将致电客户付款 4/27/2017 11:03:46 AM - NFU 05/5 PER REP CUSTOMER CONFUSION
5/5/2017 8:55:17 AM - NFU 5/9/2017 CRP PER REP CHECK是MLD 5/2/17

所有这些文字都会被塞进一个字段,我需要从字段中提取最后一个 NFU 日期,以便用于计算和过滤。

在上面的示例中,我想从最后一行中提取日期 5/9/2017
但正如您所看到的,日期可以是任何格式,在该领域的任何地方。

我认为Excel可以将文本解析为上述任何一种格式的日期值(如果没有,我将以其他方式处理 - 员工培训等)。

我需要弄清楚如何使用PowerQuery的主要内容是:

  • 在此字段中查找“ NFU ”的最后一个实例
  • 紧跟最后一个“ NFU ”后的所有文字,包括“ NFU ”与日期(如果有)之间的空格。
    此时,结果应为:
    " 5/9/2017 CRP PER REP CHECK WAS MLD 5/2/17"
  • 删除字符串开头的任何whitepsace 此时,结果应为:
    "5/9/2017 CRP PER REP CHECK WAS MLD 5/2/17"
  • 找到不是0-9/-的第一个字符(或字符串的结尾,以先到者为准)
  • 如果合适,在第一个非日期字符处截断字符串 此时,结果应为:
    "5/9/2017"
  • 最后,尝试将生成的文本格式化为Date类型/格式,并作为PowerQuery自定义列的结果返回。

查看可用的PowerQuery字符串函数,我不确定这是否可行。

1 个答案:

答案 0 :(得分:-1)

像= RIGHT(A1,LEN(A1) - (FIND(“NFU”,A1,1)-1)这样的简单公式可以提取NFU旁边的字符串。假设文本位于单元格A1。 但需要进一步深入研究以满足您的其他要求。