如何解决将垂直单元格中的数据移动到 Excel 2007 中的水平单元格
我使用的是 excel 2007
我有一个包含大约 1200 条记录的 Excel 表,其结构如下...
最简单的方法是什么?
为了便于理解,添加图片:
解决方法
根据您的评论请求,这里有一个 Power Query
解决方案。
输入代码:
- 选择数据表中的某个单元格
Data => Get&Transform => from Table/Range
- 当 PQ 编辑器打开时:
Home => Advanced Editor
- 记下第 2 行中的表名称
- 将下面的 M 代码粘贴到您看到的位置
- 将第 2 行中的表名改回最初生成的名称。
算法
- 填写(填下)
District
和Branch
列的空白行 -
Group
byDistrict
和Branch
- 对于每个组,将
President
、Secretary
和Treasurer
的条目提取为分隔字符串。 - 创建适当的列名并将分隔的字符串拆分为单独的列。
如果你有更多的军官,或者每个军官/职位有更多的项目,或者在你到达军官列之前有更多的列,那么修改代码以将其考虑在内应该相对简单。
M 代码
let
Source = Excel.CurrentWorkbook(){[Name="Table16"]}[Content],#"Changed Type" = Table.TransformColumnTypes(Source,{{"District",Text.Type},{"Branch",type text},{"President",{"Secretary",{"Treasurer",type text}}),#"Filled Down" = Table.FillDown(#"Changed Type",{"District","Branch"}),#"Grouped Rows" = Table.Group(#"Filled Down","Branch"},{
{"President",each Text.Combine([President],";")},each Text.Combine([Secretary],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,{"Secretary " & current}})),#"Split Column by Delimiter2" = Table.SplitColumn(#"Split Column by Delimiter","Secretary",SecretaryCols),TreasurerCols = List.Accumulate(colHeaderSuffix,{"Treasurer " & current}})),#"Split Column by Delimiter3" = Table.SplitColumn(#"Split Column by Delimiter2","Treasurer",TreasurerCols)
in
#"Split Column by Delimiter3"
,
公式如下(这里给出解决方案,供以后成员使用)
公式为:在司库栏后的空单元格中,
=If($a2="","",a2) // copy over next 4 columns to give the District,Branch,Pre name,address,mobile elements as =If($a2="",a2),=If($b2="",b2),=If($c2="",c2),c3),c4)
=if($d2="",d2) // copy over next 2 columns for Secretary details like =if($d2="",d2),=if($d2="",d3),d4)
=if($g2="",g2) // copy over next 2 columns for Treasurer details like =if($g2="",g2),=if($g2="",g3),g4)
现在选择所有新公式单元格在财务主管列之后的一行>> 向下拖动直到所有记录....
然后将所有这些复制到数据的底部
要么复制/粘贴特殊>>值到其他地方
然后按地区/分部/Pres排序以删除空白行
,我不知道您的 excel 电脑是否能够处理它,但您可以使用 [Paste Transpose][1]。
您复制所有内容,(我的建议是转到新电子表格,但您可以使用相同的电子表格), 然后你过去它使用过去变换
*编辑
在使用示例编辑问题后,您可能想要使用过去的转换,然后使用数据透视表
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。