gpt4 book ai didi

excel - 如何将文本拆分为列,直到遇到大写字母或数字

转载 作者:行者123 更新时间:2023-12-04 22:28:08 24 4
gpt4 key购买 nike

所以这就是问题所在,我有一个包含设备名称的表,我想将文本分成列,直到遇到大写字母或数字。

表格如下所示:

表原样



这是拆分后的样子:

待定表



我在考虑使用左函数,但不知道如何包含大写字母条件!
这是我尝试过的:

 =LEFT(A2,SMALL(FIND(CHAR(ROW(INDIRECT("65:90"))),A2&"ABCDEFGHIJKLMNOPQRSTUVWXYZ"&"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"&"1234567890" ),2)-1)

不幸的是,它不起作用...
重要提示:大写字母可以用西里尔文和拉丁文书写

此外,是否有可能在 Power Query 中更轻松地实现此目标?

谢谢!

编辑:添加了我的尝试

最佳答案

您可以使用 Power Query .
我确信有一种更简洁的方法可以做到这一点,但是 SplitOnAnyDelimiter似乎没有在第一个实例上拆分的选项,而且我没有时间将所有内容写成简洁的 M 代码,所以现在,我添加了一些自定义列:

  • 去掉第一个字母,以免在开头找到大写字母。
  • 然后找到第一个出现的位置任意数字,大写拉丁文,大写西里尔字母
  • 返回该位置之前的字符串部分。
  • 返回该位置之后的字符串部分。
  • 删除不需要的列

  • M代码:
    let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "2nd", each Text.Middle([Name],1)),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Position", each Text.PositionOfAny([2nd],{"0".."9","A".."Z","А".."Я"},Occurrence.First)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Equipment", each Text.Start([Name],[Position])),
    #"Added Custom3" = Table.AddColumn(#"Added Custom2", "Custom", each Text.Middle([2nd],[Position])),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom3",{"Name", "2nd", "Position"})
    in
    #"Removed Columns"

    资源

    enter image description here

    结果

    enter image description here

    编辑 我怀疑以下代码可能更有效,因为添加的唯一列是结果列:
    let
    Source = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],

    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Equipment", each Text.Start([Name],
    Text.PositionOfAny(Text.Middle([Name],1),{"0".."9","A".."Z","А".."Я"},Occurrence.First))),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Part No", each Text.Middle([Name],
    Text.PositionOfAny(Text.Middle([Name],1),{"0".."9","A".."Z","А".."Я"},Occurrence.First)+1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Name"})
    in
    #"Removed Columns"

    关于excel - 如何将文本拆分为列,直到遇到大写字母或数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55899154/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com