发布网友 发布时间:2022-04-22 13:35
共3个回答
热心网友 时间:2023-05-19 07:45
本问题推荐用Power Qurey,把数据导入到Power Qurey中后
先将两列成绩数据进逆透视,得到新的3列数据:姓名列、科目列、成绩列
将科目列与成绩用分隔符(如逗号)合并,得到2列数据,姓名列,科目与成绩的合并,每个姓名对就2行数据
以姓名为依据分组合并,得到一个新的2列数据,姓名列、数据列,数据列中所有科目与成绩在同一行了。分组时先是按求和,再通过修改M语句把求和改成连接合并(连接符与前面的分隔符要不同,如用分号)
合并列,将2列数据合并为一列,分隔符用与上面第3步中的相同,即分号
把合并的列重新拆分,按分号分隔符。拆分时选择高级——拆分为行。拆分后就还是一列,但同一姓名就在连接的3行中了:姓名、科目/成绩、科目/成绩
再次按1次的分隔符(逗号)拆分列,这次是直接拆分为2列,因为姓名行无分隔符,第2列就是空,而科目和成绩就拆分为2列了。
最后将处理好的数据上载回Excel工作表中。
如用 公式,感觉对应关系不明显。如图可用如下公式:
姓名/科目列:
=CHOOSE(MOD(ROW(3:3),3)+1,OFFSET(A$1,ROW(3:3)/3,),B$1,C$1)&""
下拉到出现空白单元格
成绩列:
=CHOOSE(MOD(ROW(3:3),3)+1,"",OFFSET(B$1,ROW(3:3)/3,,),OFFSET(C$1,ROW(3:3)/3,,))
下拉到也左边列平齐
热心网友 时间:2023-05-19 07:45
根据题意,输入下方公式后回车,下拉公式,即可实现数据隔行填充。
=OFFSET($A$1,INT(ROW(A3)/3),MOD(ROW(A3),3),)
热心网友 时间:2023-05-19 07:46
看我的图图:
M列首条公式:
=IF(MOD(ROW(A3),3)=0,OFFSET($H$1,INT(ROW(A3)/3),),OFFSET($H$1,,MOD(ROW(A3),3)))
N列首条公式:
=IF(MOD(ROW(A3),3)=0,"",OFFSET($H$1,INT(ROW(A3)/3),MOD(ROW(A3),3)))
看着是不是挺长挺复杂??
其实我给你一说怎么改,就灰常灰常简单了:
1、把以上两条公式中的三处$H$1改为你的表格中数据源的姓名单元格,要加上丙个$绝对引用符。
2、把以上两条公式中的所有的3改掉,这个3是指的数据源总列数,包含姓名列和科目列的总列数。
比如说,你的实际数据是1列姓名和5列科目,那么总列数就是6,所以就把单独的3改为6,同时把ROW(A3)改为ROW(A6)