如果这个问题重复出现,我真的很抱歉,但是我的google fu失败了我,我找不到解决问题的答案。
我想按列表而不是汇总透视表数据。我真的不能把它写成单词(对不起,但英语不是我的母语),所以让我给大家展示一个例子。
我的数据具有以下结构:
Project | Due Date (dd/mmm/aa)
A | 15/jan/21
B | 20/jan/21
C | 31/jan/21
D | 15/feb/21
E | 22/feb/21
F | 01/mar/21
G | 10/mar/21
H | 27/mar/21
I | 30/mar/21
使用Excel数据透视表很容易获得这种汇总:
| 2021 |
| jan | feb | mar |
Project | 3 | 2 | 4 |
现在我真正想要的是一个像下面这样的列表,即使我的生活很艰辛,我也无法从数据透视表中获取该信息:
| jan | feb | mar |
| A | D | F |
| B | E | G |
| C | | H |
| | | I |
我可以通过在电子表格中使用INDEX,ROW,COL和MATCH函数的组合来到达那里,但是我感觉有一种更简单的方法,我太愚蠢了。
任何人都可以向我展示这种更好的方法,或者为我提供一些文档吗?
谢谢!
答案 0 :(得分:1)
我认为仅使用一个数据透视表是无法解决此问题的(数据透视表旨在将值汇总到两个轴的矩阵中,在此不做任务)。但是,您可以通过每月彼此相邻使用一个数据透视表来获得相同的结果,如果数据集中的不同月份在某种程度上是可以预测的,则可以使用该数据透视表-但我承认这不是一个很好的解决方案。
不提供完全相同的结果,但可以作为下一个最佳选择的另一种方法是,将Project放在行和值(计数)上,将Month(到期日期)放在列上,以得到以下结果:< / p>
Alternative solution - structure
即使这不是您要的内容,但我想值得一提的是,使用Power Query而不是Pivot Table转换表可能是一种更好的方法
编辑: 这是一个为您解决问题的Power查询解决方案。 创建一个表并确保其名为“ Table1”,或在代码中编辑该引用。表结构与OP中的示例相同。
Here's the result I got from PQ(不要介意标题语言)
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Project ", type text}, {" Due Date (dd/mmm/aa)", type datetime}}),
#"Inserted Month Name" = Table.AddColumn(#"Changed Type", "Month Name", each Date.MonthName([#" Due Date (dd/mmm/aa)"]), type text),
#"Sorted Rows" = Table.Sort(#"Inserted Month Name",{{" Due Date (dd/mmm/aa)", Order.Ascending}}),
#"Removed Columns1" = Table.RemoveColumns(#"Sorted Rows",{" Due Date (dd/mmm/aa)"}),
#"Grouped Rows" = Table.Group(#"Removed Columns1", {"Month Name"}, {{"Data", each _, type table [#"Project "=text, #" Due Date (dd/mmm/aa)"=datetime, Month Name=text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Index", each Table.AddIndexColumn([Data], "Index", 1, 1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Data"}),
#"Expanded Index" = Table.ExpandTableColumn(#"Removed Columns", "Index", {"Project ", "Index"}, {"Project ", "Index.1"}),
#"Pivoted Column1" = Table.Pivot(#"Expanded Index", List.Distinct(#"Expanded Index"[#"Month Name"]), "Month Name", "Project "),
#"Removed Columns2" = Table.RemoveColumns(#"Pivoted Column1",{"Index.1"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns2", List.Distinct(#"Removed Columns2"[#"Month Name"]), "Month Name", "Project ")
in
#"Pivoted Column"
答案 1 :(得分:0)