我正在尝试汇总对非营利组织的捐款,并在一份干净整洁的报告中整理姓名、年度捐款和联系信息,每个用户一行。我使用数据透视表计算了年度总数,但在同一行获取联系信息时遇到了几个死胡同。以下是我输入数据的示例和数据透视表的开头:
我希望电子邮件列显示在旁边。我相信我可以保证每个用户贡献的联系信息始终相同。我可以在 Excel 中得到我想要的东西吗?
或者我应该满足于一个单独的表格,其中仅显示来自捐赠管理网站(Little Green Light)的不同 csv 的用户列表,并且最终用户需要交叉引用它们?
这是测试 xlsx 文件:https://www.dropbox.com/s/7lhh5w455x8j8mz/test_report.xlsx?dl=0
答案1
正如我在评论中提到的,这也可以使用 Power Query 来实现,可在 Windows Excel 2010+ 和 Excel 365(Windows 或 Mac)中使用
使用 Power Query
- 在数据表中选择一些单元格
Data => Get&Transform => from Table/Range
或者from within sheet
- 当 PQ 编辑器打开时:
Home => Advanced Editor
- 记下表格姓名在第 2 行
- 将下面的 M 代码粘贴到您所看到的位置
- 将第 2 行的表名改回最初生成的表名。
- 阅读评论并探索
Applied Steps
以了解算法
M 代码
let
//change next line to reflect actual data sournce
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Year", Int64.Type}, {"Amount", Int64.Type}, {"email", type text}}),
//Pivot on years
//then re-order columns to desired order
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"Year", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"Year", type text}}, "en-US")[Year]), "Year", "Amount", List.Sum),
#"Reordered Columns" = Table.ReorderColumns(#"Pivoted Column",{"Name", "2021", "2022", "email"})
in
#"Reordered Columns"