Excel 2016中按Section分组转置学生Qa、Qb答题数据的方法咨询
Excel 2016 实现按班级横向展开作答的操作方法
方法一:使用Power Query(推荐,可复用,新增数据一键刷新)
Excel 2016已内置Power Query工具,无需额外安装插件,操作步骤如下:
- 选中原始数据区域,点击「数据」选项卡→「从表格/区域」,弹窗中确认勾选「我的表格有标题」,点击确定进入Power Query编辑器
- 选中「Section」列,点击「转换」选项卡→「分组依据」,弹窗设置:新列名输入「分组数据」,操作选择「所有行」,点击确定
- 点击「添加列」选项卡→「自定义列」,公式栏输入:
Table.AddIndexColumn([分组数据],"序号",1,1),点击确定 - 点击自定义列右上角的展开箭头,仅勾选「序号」「Qa」「Qb」三个字段,取消勾选「使用原始列名作为前缀」,点击确定
- 按住Ctrl选中「Section」和「序号」两列,右键点击「逆透视其他列」,会生成「属性」(值为Qa/Qb)和「值」两列
- 再次点击「添加列」→「自定义列」,新列名设为「列名」,公式输入:
[属性]&"_"&Number.ToText([序号]),点击确定 - 删除不需要的「属性」「序号」「分组数据」列,选中「列名」列,点击「转换」选项卡→「透视列」,值列选择「值」,聚合值函数选择「不要聚合」
- 点击「主页」选项卡→「关闭并上载」,处理完成的数据会自动导出到新工作表,自动生成对应数量的列
方法二:函数公式法(适合小数据量临时使用)
假设原始数据存放在Sheet1的A:C列(A为Section、B为Qa、C为Qb):
- 先在新表A列提取去重后的班级编号
- 新表第一行按规则输入表头:Qa_1、Qb_1、Qa_2、Qb_2……直到覆盖最大作答人数对应的列数
- 选中B2单元格,输入公式:
=IFERROR(INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$A:$A=$A2,ROW($A:$A),99999),INT((COLUMN(A1)-1)/2)+1)),""),输入完成后按「Ctrl+Shift+Enter」三键触发数组计算 - 按住B2单元格右下角的填充柄,向右向下填充到所有单元格即可
内容的提问来源于stack exchange,提问作者cb1
相关产品推荐
相关产品推荐

