首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Excel 2007中将垂直单元格中的数据移动到水平单元格

在Excel 2007中将垂直单元格中的数据移动到水平单元格
EN

Stack Overflow用户
提问于 2021-05-11 08:05:12
回答 3查看 269关注 0票数 0

我正在使用excel 2007。

我有一张excel表格,有1200张记录,结构如下.

做这件事最简单的方法是什么?

为了便于理解,添加图像:

EN

Stack Overflow用户

发布于 2021-05-11 19:45:53

根据您的评论请求,这里有一个Power Query解决方案。

输入代码:

在数据Table

  • Data => Get&Transform => from Table/Range

  • When中选择某些单元格PQ编辑器打开:Home => Advanced Editor

  • Make注释第2行中的表名称在第2行

  • 中粘贴M代码代替您看到的

  • 将第2行的表名更改回原来生成的内容。

< Code >F 218

算法

Branch

  • For
  • 通过District
    • 填写(填入) DistrictBranch District的空白行,将PresidentSecretaryTreasurer.
    • Create的条目提取为分隔字符串,并将分隔的字符串拆分为单独的列。

如果您有更多的军官,或者每个军官/职位有更多的项目,或者在进入军官列之前有更多的列,那么修改代码以考虑到这一点应该是相对简单的。

M码

代码语言:javascript
运行
复制
let
    Source = Excel.CurrentWorkbook(){[Name="Table16"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"District", Text.Type}, {"Branch", type text},
         {"President", type text}, {"Secretary", type text}, {"Treasurer", type text}}),
    #"Filled Down" = Table.FillDown(#"Changed Type",{"District", "Branch"}),
    #"Grouped Rows" = Table.Group(#"Filled Down", {"District", "Branch"},{
        {"President", each Text.Combine([President],";")},
        {"Secretary", each Text.Combine([Secretary],";")},
        {"Treasurer", each Text.Combine([Treasurer],";")}
        }),

colHeaderSuffix = {"","Addr","Mobile"},
PresidentCols = List.Accumulate(colHeaderSuffix, {}, (state, current) => List.Combine({state, {"President " & current}})),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Grouped Rows", "President", 
        Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), PresidentCols), 

SecretaryCols = List.Accumulate(colHeaderSuffix, {}, (state, current) => List.Combine({state, {"Secretary " & current}})),
    #"Split Column by Delimiter2" = Table.SplitColumn(#"Split Column by Delimiter", "Secretary", 
        Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), SecretaryCols),

TreasurerCols = List.Accumulate(colHeaderSuffix, {}, (state, current) => List.Combine({state, {"Treasurer " & current}})),
    #"Split Column by Delimiter3" = Table.SplitColumn(#"Split Column by Delimiter2", "Treasurer", 
        Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), TreasurerCols) 

in
    #"Split Column by Delimiter3"

原始数据

结果

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67482765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档