在 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。您的业务处理逻辑将驱动您想要执行的操作。一步一个脚印。
我每天都会收到一些需要分开的短信。我有数百行类似于下面的摘录:
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。您的业务处理逻辑将驱动您想要执行的操作。一步一个脚印。