如何将文本分成几列,直到满足大写字母或数字

阿德伦

因此,这里的问题是,我有一个带有设备名称的表,在该表中,我想将文本分成几列,直到满足大写字母或数字。

表格的外观如下:

表格原样

分割后的样子如下:

待定桌

我正在考虑使用左功能,但不知道如何包括大写字母!这是我尝试过的:

 =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"

资源

在此处输入图片说明

结果

在此处输入图片说明

编辑我怀疑以下代码可能更有效,因为添加的唯一列是结果列:

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"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将模式(#/空格/大写字母)分成一个以大写字母开头的新行?

如何将大写字母转换为小写?

如何将大写字母转换为小写字母?

Microsoft Word,如何将小写字母更改为大写字母,以及如何将大写字母更改为大写字母

如果数字以大写字母结尾,如何引入\ n?

如何将 html 标签添加到 R 中的矢量并保留大写字母?

如何将所有大写字母移动到字符串的开头?

如何将Unicode转换为大写字母以进行打印?

如何将小写和大写字母与字符串分开?

如何将文件名的大写字母更改为小写?

如何将大写字母的一半写成小写?

如何将样式应用于所有带有大写字母的段落?

如何将字符串转换为以大写字母开头

如何将文本分成句子?

如何将文本分成几行

匹配以大写字母开头的单词,直到以大写字母开头的单词

大写字母

使用cSplit用大写字母将字符串分成多行

C#如何将特定的小写字母同时转换为大写和大写字母同时转换为小写

SQL Server,将字母数字字符串转换为大写字母数字

sed 如何允许大写字母?

.htaccess-如何将url中的大写字母和带重音符号的字母重定向到不带重音的小写字母?

将mongo中的大写字母更改为驼峰式大写字母?

Ruby:按大写字母和首字母缩略词将字符串分成单词

尽管使用大写字母或大写字母,如何查找单词?

Android Studio上是否存在将文本转换为大写字母的快捷方式?

屏幕阅读器 [NVDA] 无法将大写字母中的按钮文本读作单词

如何将名称以大写字母开头的目录重命名为以小写字母开头的目录?

Mathjax中的大写字母和数字太大