发布网友 发布时间:2023-07-14 01:36
共3个回答
热心网友 时间:2023-10-02 10:47
用powerquery吧。代码如下:
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"列1", type text}}),
按分隔符拆分列 = Table.SplitColumn(更改的类型, "列1", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"列1.1", "列1.2"}),
更改的类型1 = Table.TransformColumnTypes(按分隔符拆分列,{{"列1.1", type text}, {"列1.2", type text}}),
复制的列 = Table.DuplicateColumn(更改的类型1, "列1.1", "列1.1 - 复制"),
重命名的列 = Table.RenameColumns(复制的列,{{"列1.1 - 复制", "左侧"}}),
已添加自定义 = Table.AddColumn(重命名的列, "右侧", each if [列1.2]= null then [左侧] else [列1.2]),
删除的其他列 = Table.SelectColumns(已添加自定义,{"列1.1", "左侧", "右侧"}),
重命名的列1 = Table.RenameColumns(删除的其他列,{{"列1.1", "data"}}),
替换的值 = Table.ReplaceValue(重命名的列1,"K000","",Replacer.ReplaceText,{"左侧", "右侧"}),
更改的类型2 = Table.TransformColumnTypes(替换的值,{{"左侧", Int64.Type}, {"右侧", Int64.Type}}),
已添加自定义1 = Table.AddColumn(更改的类型2, "step", each [右侧]-[左侧]),
已添加自定义2 = Table.AddColumn(已添加自定义1, "result", each {[左侧]..[右侧]}),
#"展开的“list”" = Table.ExpandListColumn(已添加自定义2, "result"),
更改的类型3 = Table.TransformColumnTypes(#"展开的“list”",{{"result", type text}}),
已添加自定义3 = Table.AddColumn(更改的类型3, "自定义", each Text.Combine({"K000",[result]})),
删除的其他列1 = Table.SelectColumns(已添加自定义3,{"自定义"})
in
删除的其他列1
提供一个示例文件供参考:链接: https://pan.baidu.com/s/1HMLfcOuMp8P6looS24EcfA
1.确保Excel版本为2016及以上(其他低版本需要自己下载powerquery插件)。
2.打开示例文件,把原始数据替换成您的数据(只是要拆分的那一列),然后在【数据】选项卡上点击【全部刷新】,结果就加载到右边的表格了
如果有安全警告,如上图所示,点击“启用内容”即可。
追问开始字母有两种规则,K开头和HI开头的。
热心网友 时间:2023-10-02 10:47
写代码可以处理,需要实际的数据格式热心网友 时间:2023-10-02 10:48
VBA处理吧,请私聊。追问有办法处理吗,请教方法。