在 excel 中提取文本

Extracting text in excel

我每天都会收到一些需要分开的短信。我有数百行类似于下面的摘录:

COMMODITY PRICE DIFFERENTIAL: FEB50-FEB40 (APR): COMPANY A OFFERS 1000KB AT [=11=].40

我需要从此文本中提取各个片段,因此对于单独单元格中的每个片段,我的结果需要是日期、月份、公司、大小和价格。在这种情况下,结果将是:

FEB50-40
APR
COMPANY A
100
0.40

我正在努力解决的问题是一致性。例如,一行可能有 FEB50-FEB40,另一行可能有 FEB5-FEB40,或 FEB50-FEB4。另一个给我困难的例子是一些行可能有 'COMPANY A' 而另一个 'COMPANYA' (一个词而不是两个)。

有什么想法吗?我一直在尝试以下组合,但无法获得统一的结果。

=TRIM(MID(SUBSTITUTE($D7," ",REPT(" ",LEN($D7))), (5)*LEN($D7)+1,LEN($D7))) 
=MID($D7,20,21-10)
=TRIM(RIGHT(SUBSTITUTE($D6,"$",REPT("$",2)),4))

有时我得到

FEB40-50(' OR 'FEB40-FEB5' 

什么时候应该

'FEB40-FEB50'`

谢谢谁能提供帮助。

在这种情况下您可能会遇到公式的限制,但使用 Power Query 您仍然可以工作。

据我所知,您想应用以下逻辑从此字符串中提取文本:

COMMODITY PRICE DIFFERENTIAL: FEB50-FEB40 (APR): COMPANY A OFFERS 1000KB AT [=10=].40
  • 第一个 : 之后和第一个 (
  • 之前的文本
  • 括号内的文字
  • 单词 OFFERS 之后和 AT
  • 之前的文本
  • “AT”后的文本

这些可以很容易地转化为 Power Query 中的几个“拆分”场景。

  • 按自定义分隔符拆分 : - 这是冒号和 space - 每次出现
  • 删除第一列
  • ( 拆分新的第一列 - 即 space 和括号 - 最左边的
  • ) 替换为第二列中的任何内容
  • 按分隔符拆分第三列OFFERS
  • 按分隔符拆分新的第四列AT

屏幕截图显示了重命名列之后以及将查询加载到工作表之前 Power Query 编辑器中的输入数据和结果。

加载查询后,您可以在输入 table 中添加/删除数据,然后只需刷新查询即可获得结果。没有公式,只需单击功能区命令。

您可以更进一步,从列中删除“KB”,将其转换为数字,然后除以 100。您的业务处理逻辑将驱动您想要执行的操作。一步一个脚印。