Excel 对于具有逗号分隔值的列,需要透视表
所以,我找到了一些其他的解决方案来解决我遇到的类似问题,但不是很精确。我在Excel中解释调查结果,调查工具(Qualtrics)将多个选择问题(“选择所有适用问题”)的回答放在一个单元格中,逗号分隔。我需要在数据透视表中计算出个人回答的数量,在数据透视表中,我还将从一些受访者人口统计数据中获取总数,我将添加到回答电子表格中。我试图做的与此非常相似: 但是,“我的工作表”将有多个带有逗号分隔响应的列,如下所示: ..我需要它的列格式,以便我可以旋转和计数。正如我提到的,我将添加一些属性数据(人力资源数据,这就是为什么我无法将其导入Qualtrics-无法发送到公司外部),因此我仍然需要将人员与响应配对。但是,如果有一个脚本或命令可以为我运行并将其拆分,我不确定它将如何处理列与列之间不同数量的响应以创建所需的行(如示例中的Bill和Karen)。我是否需要先使用csv单元格最长的列,依此类推?但是,它看起来是这样的:Excel 对于具有逗号分隔值的列,需要透视表,excel,csv,pivot,transpose,survey,Excel,Csv,Pivot,Transpose,Survey,所以,我找到了一些其他的解决方案来解决我遇到的类似问题,但不是很精确。我在Excel中解释调查结果,调查工具(Qualtrics)将多个选择问题(“选择所有适用问题”)的回答放在一个单元格中,逗号分隔。我需要在数据透视表中计算出个人回答的数量,在数据透视表中,我还将从一些受访者人口统计数据中获取总数,我将添加到回答电子表格中。我试图做的与此非常相似: 但是,“我的工作表”将有多个带有逗号分隔响应的列,如下所示: ..我需要它的列格式,以便我可以旋转和计数。正如我提到的,我将添加一些属性数据(
我能做些什么来实现这一点吗?您想要的布局实际上也不适合正确的透视表。您需要一个真正平坦的表结构,这样您就可以过滤喜欢的内容,而不会同时隐藏不喜欢的内容 您可以使用Power Query轻松转换数据。将数据加载到Power Query Editor中,然后用分隔符“,”(逗号后跟空格)拆分每个问题列。这将把每个答案分成它自己的一列,标题中的问题附加.1、.2等 然后选择名称列并单击“取消打印其他列”。问题标题现在将位于属性列中。用分隔符“.”(点)拆分该属性列,并删除带有拆分数字的列 最后,将列重命名为问答 下面是执行此操作时生成的M代码
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"like", type text}, {"dislike", type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "dislike", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv), {"dislike.1", "dislike.2", "dislike.3", "dislike.4", "dislike.5"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"dislike.1", type text}, {"dislike.2", type text}, {"dislike.3", type text}, {"dislike.4", type text}, {"dislike.5", type text}}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type1", "like", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv), {"like.1", "like.2", "like.3", "like.4"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"like.1", type text}, {"like.2", type text}, {"like.3", type text}, {"like.4", type text}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type2", {"Name"}, "Attribute", "Value"),
#"Split Column by Delimiter2" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Attribute.1", "Attribute.2"}),
#"Changed Type3" = Table.TransformColumnTypes(#"Split Column by Delimiter2",{{"Attribute.1", type text}, {"Attribute.2", Int64.Type}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type3",{"Attribute.2"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute.1", "question"}, {"Value", "Answer"}})
in
#"Renamed Columns"
生成的表如下所示:
如果原始数据接收到更多行,只需刷新查询即可
现在,您有了一个可以在数据透视中使用的表,而不会影响任何数据。不确定您想要实现什么(可能一次完成的事情太多),至少在问题的第一部分:每个类别的响应计数您可以这样做: 对于每个响应列,创建一个计数列,例如: 名称、响应、列、计数 计数公式:逗号计数+1 在excel中,可以使用以下公式进行计算: 你现在有: 1) 答复数 2) 可以生成每个类别的响应总数,例如Karen的响应A计数