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

问题描述 投票:-3回答:2

我有一个Excel中的票务工具导出的报表。

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

每行的第I列包含票务系统中的自由文本字段的内容,其中包含工作在按时间顺序排序的票证的支持人员的日期和时间戳记注释,最近的第一个。

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

任何人都可以建议一种方法从每个单元格中提取最近的条目并将它们放在列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负责人想要一个“管理报告”,而不必亲自登录票务系统。

regex excel text reporting
2个回答
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)

0
投票

无论如何,在我发现字符串中有一个可靠的可重复模式,使用日期戳中的年份“-20”时,使用LEFT和FIND得到答案。是的,当我们到达2100时它会破裂但是如果它仍然被使用那么,上帝帮助我们所有人。

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

© www.soinside.com 2019 - 2024. All rights reserved.