在 Ex 中重新格式化调查数据

在 Ex 中重新格式化调查数据

我正在尝试找到一种方法来重新格式化当前以每个受访者多行(每个问题 1 行,其中一列表示受访者的 ID、问题的 ID 和答案)的电子表格的调查结果,以便我们可以提供每个受访者只有一行的版本(每个问题 1 列,该列的单元格值为该受访者的答案)。

最简单的形式是,问题是改变这个表:

起始数据示例

变成这个:

示例重新格式化的数据

这需要可扩展以支持任意数量的 ID 和问题,但 ID 都是唯一的,问题始终以相同的方式标记,答案始终在同一列中。如果我可以复制相同的基本方法并替换问题值,那么手动构建列不是问题。

答案1

Power Query使用 Excel 2010+轻松完成

  • 将光标放在数据表中,在 Excel 2016+ 中,您可以导航到
    Data-->Get&Transform-->From Table/Range
    (早期版本可能有所不同)
  • 添加自定义列,在每个问题编号前加上“问题”一词

在此处输入图片描述

  • 删除多余的列
  • 在自定义列上进行透视,但不进行聚合:

在此处输入图片描述

  • 关闭并加载

在此处输入图片描述

M 代码
(您可以将其粘贴到 PQ 高级编辑器中,但您必须更改第 2 行中的表格引用以反映您的实际表格名称)

let
    Source = Excel.CurrentWorkbook(){[Name="Table8"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Question", type text}, {"Response", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each "Question " & [Question]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Question"}),
    #"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom]), "Custom", "Response")
in
    #"Pivoted Column"

答案2

尝试这个公式:

=LOOKUP(1,0/(($A$2:$A$5=$A10)*($B$2:$B$5=VALUE(RIGHT(B$9,1)))),$C$2:$C$5)

在此处输入图片描述

相关内容