我有这个字符串
6993=!ELP|6920=MP|6921=1|6922=MXGB0TC|6970=5|6926=F|6974=P
寻找获得的最佳方法MXGB0TC
,即6922=
在第一个管道被分割后,在它的左边6922=
尝试了下面的方法来完成第一部分,但我猜B0TC|6970=5|6926=F|6974=P
=RIGHT(A2; SEARCH(6922&"=";A2;1)-1)
我在这里遗漏了什么?
答案1
您快完成了。假设您的搜索字符串的一般格式保持不变,请尝试以下操作:
=LEFT(RIGHT(A2,LEN(A2)-SEARCH("6922=",A2)-4),SEARCH("|",RIGHT(A2,LEN(A2)-SEARCH("6922=",A2)-4))-1)
编辑:根据您的评论,如果您想要的值始终是 7 个字符,则可以缩短如下:
=LEFT(RIGHT(A2,LEN(A2)-SEARCH("6922=",A2)-4),7)
答案2
你可能会发现这很有用。
选择您的范围,然后使用数据>获取和转换数据>从表/范围
这将打开 Power Query 编辑器。然后,您可以使用管道上的拆分列并分离到行来生成以下内容:
然后您可以使用 delimiter="=" 上的拆分列来获得以下内容:
您可以在此处进行过滤,或者只需使用“主页”>“关闭并加载”将所有数据放回工作簿中。
这是我的疑问:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"data", type text}}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Changed Type", {{"data", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "data"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"data", type text}}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type1", "data", Splitter.SplitTextByDelimiter("=", QuoteStyle.Csv), {"data.1", "data.2"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"data.1", Int64.Type}, {"data.2", type text}})
in
#"Changed Type2"