乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel中如何将一行数据根据属性拆分成多行数据

excel中如何将一行数据根据属性拆分成多行数据

作者:乔山办公网日期:

返回目录:excel表格制作


绿色区域为辅助

E1=0(必须填0)

E2=ROUNDUP(D2/10,0)+E1下拉至E6

G2=IF(ROW(G1)>SUMPRODUCT(ROUNDUP($D$2:$D$6/10,0)),"",INDEX(A$2:A$6,MATCH(ROW(G1)-1,$E$1:$E$5,1)))向右复制到I2

J2=IF(ROW(G1)>SUMPRODUCT(ROUNDUP($D$2:$D$6/10,0)),"",IF(INDEX(D$2:D$6,MATCH(ROW(J1)-1,$E$1:$E$5,1))-(COUNTIF(I$2:I2,I2)-1)*10>=10,10,MOD(INDEX(D$2:D$6,MATCH(ROW(J1)-1,$E$1:$E$5,1)),10)))

把G至J列第二行公式向下复制到需要处。



你好!这题目是一个典型的将一个交叉表(二维表)数据转换为数据库记录(一行一行的记录)表的操作过程,我可以给你一个操作,稍等。

1、先将表整理一下,取消合并单元格,为了唯一值,在每个科目前加一个科目代码列(如图),

2、以身份证号加科目代码为唯一值,在表前加三空列,A2=H2&I2,B2=H2&M2,C2=H2&Q2, 下拉,得到全部值,然后复制这3列值,再选择性粘贴为数值(因公式所得值不能当参数);    

3、复制前三列值(不包括表头),粘贴---选择性粘贴为数值---转置,

4、列公式,错位相等,再下拉公式,直到值为0出现时,这样就把原来的交叉数据变成一列唯一的记录。

5、再复制得到的新列A,选择粘贴为数值,原表后面的列值全部可以用vlookup( )函数实现。B30=vlookup(A30, $A$1:$T$6, 6, 0), C30=vlookup(A30, $A$1:$T$6, 7, 0),

因本人经常与数据库打交道,常用EXCEL转换数据,这个方法当你面对海量数据进行加工时,特别实用,希望对你用。谢谢


如果有规律的话
可以使用分列,按照固定宽度或者间隔符号将一行数据分成多列
然后再利用选择性粘贴,转置,将列转换成行

假定数据在第一行,
在第二行(a2)输入:
=OFFSET($A$1,0,ROW(A1)*8+COLUMN(A1)-1)
然后右拉到h2,然后下拉即可。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网