问题描述
我正在努力复制具有2种不同格式的数组:一种是水平的,另一种是对角的。我想获取c-F列并将其转换为列表格式,对于在c-f中找到的每个数字,我希望它复制a-b中的相应值。它还会复制c-f中值的每个标题,并将其放置在新工作表的旁边,在该表中转置/复制值。
请查看以下照片:
这就是我所拥有的
您可以看到日期是水平的,但在8-11行中,日期变为垂直。
我想转换此数据以复制和粘贴每个单元格值以及a-b中的相应记录。请查看我要创建的内容:
请注意工作表1中不存在的工作表2中的新列标题。
所有帮助将不胜感激。我不确定如何开始。我相信这些是步骤:
- 将a-f设置为工作表1中的范围
- 将工作表1中的a-b复制并粘贴到工作表2的第3行上
- 在第3行c-f之间的每一行中复制每个单元格,并为每个值重复a-b
- 移至下一行
- 删除工作表2中第4列中没有值的所有空白行。
谢谢。
解决方法
Power Query
是Microsoft的免费Excel 2010加载项。
您需要做的所有事情:
- 将光标置于表格中
- 进入超级查询用户界面
- 不确定2010年,但在2016年及以后,您将选择
Data --> Get&Transform-->From Table/Range
- 在2010年,您必须首先下载并安装该插件/插件,然后按照这些说明进行PQ
- 不确定2010年,但在2016年及以后,您将选择
- 仅在用户界面中一次
- 选择
Color
和Food
列 - 选择为
Unpivot Other Columns
- 重命名
Attribute
列->Date
- 关闭并加载
- 选择
M代码
let
//Change table name to reflect your reality
Source = Excel.CurrentWorkbook(){[Name="Table18"]}[Content],#"Changed Type" = Table.TransformColumnTypes(Source,{{"Color",type text},{"Food",{"1-Jan",Int64.Type},{"1-Feb",{"1-Mar",{"1-Apr",Int64.Type}}),#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type",{"Color","Food"},"Attribute","Value"),#"Renamed Columns" = Table.RenameColumns(#"Unpivoted Other Columns",{{"Attribute","Date"}})
in
#"Renamed Columns"