在Excel单元格中的复杂分隔符之间提取文本

时间:2018-10-16 18:52:36

标签: regex excel text reporting

我从Excel中的售票工具中导出了一份报告。

每行对应于系统中的一张票证。

每行的第一列包含票务系统中“自由文本”字段的内容,其中包含按顺序对票证进行排序的支持人员的日期和时间戳记注释,以最新时间为准。

文本字段包含多个条目,这些条目由使用统一格式的时间戳分隔。每个条目可能包含也可能不包含多个行和换行符。

谁能建议一种从每个单元格中提取最新条目并将其放在J列中自己的单元格中的方法。本质上,我需要从第一个时间戳到开始的所有内容,包括第一个时间戳,但不包括下一个时间戳。

以下示例单元格内容。

  

12-10-2018 14:12:09-Joe Bloggs(客户更新)   由于项目所有者正在休假,本周没有变化。

     

05-10-2018 08:24:24-Jane Blogges(客户更新)   供应商已针对该解决方案提出了更详细的建议,包括转向基于现有API的集成服务

     

费用尚待商定。

     

28-09-2018 14:21:35-Joe Bloggs(客户更新)   本周将继续围绕拟议解决方案的适用性进行讨论。

     

该项目仍然没有明确的计划,也没有总体设计文件。

     

20-09-2018 11:24:55 -Joe Bloggs(客户更新)   虽然已经举行了许多讨论需求和可行性的会议,但没有提出高层次的设计,而且KDD的许多方面仍然很出色。

     

17-09-2018 09:59:26-Joe Bloggs(客户更新)   票已接受

此单元格所需的输出是

  

12-10-2018 14:12:09-Joe Bloggs(客户更新)   由于项目所有者正在休假,本周没有变化。

必须这样做,因为负责的PHB希望获得“管理报告”,而不必亲自登录票务系统。

2 个答案:

答案 0 :(得分:0)

可以使用公式来完成。例如,如果带有回车符的文本位于单元格A2中,请尝试使用以下公式。获取以第一个数字开头并以第一个数字之后的第一个回车结尾的子字符串。当然需要进行调整。

=MID(A2, MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")), FIND(CHAR(10), A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")))-1)

答案 1 :(得分:0)

在我发现日期戳中使用年份的“ -20”发现字符串中存在可靠的可重复模式之后,无论如何都要最后使用答案。是的,当我们到2100年时它将打破,但是如果仍然在使用它,上帝会帮助我们所有人。

= LEFT(A1,IFERROR((((FIND(“-20”,A1,10))-6),LEN(A1)))