excel横列数据合并怎么处理?

见图片,如何把原始数据变成,我需要的表格样式。除了金额,还有地址,一样的公式好像不行。

你好,这是一个典型的将数据库记录转换成二维交叉表格的问题,通过Excel,处理如下:

前题是每个人每日对应的金额只限一次,如果出现二次,则在须再加一个序号列。

1、为了防止两人姓名相同,则建议加一列“工号”,其值自定义就行,再加一列“查询号"(数据转换完后也可删除,其值为 A2=B2&C2&D2 下拉,如图,

2、取唯一行值与列值,复制工号、姓名两列,然后粘贴到另一处,数据---删除重复项,得到右边唯一行值,用相同办法,复制日期列,然后手复制、删除重复得到唯一的列值;

3、将新得到的日期列值,复制---选择性粘贴----转置,将工号与姓名一同复制,得到二维交叉表(这样设计就把数据范围包括完全了),注,日期复制粘贴后,日期格式会变成一串数字,选择范围,右键、设置单元格格式---日期 (*2001-3-4):

4、定义公式取值,K2=IFERROR(VLOOKUP($I2&$J2&$K$1,$A:$E,5,0),0),  先横拉,然后锁定公式中的范围值(加 $),再竖拉。没有值的我用0代替了,便于求和运算。 

说明: 本人从事数据库管理工作,这种方法对海量数据存取很效。希望对你有用,有疑问再交流。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-01

这个如果只是计算金额,那倒是直接用sumifs即可,公式也简单,但是要实现自动删选,还是推荐两种方法,一种是数据透视表,如下:

另一种是函数法,首先要获取姓名、日期的不重复值,不重复值可以使用数组公式法获取,也可以使用“数据”菜单下的“删除重复值”得到,删除重复值演示如下:

表中求和用函数即为sumifs,这个没什么可说的,使用时注意单元格引用方式。

公式:

F3=SUMIFS($B$3:$B$13,$A$3:$A$13,$E3,$C$3:$C$13,F$2)

向右、向下拉公式。

获取姓名和日期不重复值函数参考:

E3=IFERROR(INDEX($A$3:$A$13,SMALL(IF(MATCH($A$3:$A$13,$A$3:$A$13,0)=ROW($A$1:$A$11),ROW($A$1:$A$11),4^6),ROW(A1))),"")

F2=IFERROR(INDEX($C$3:$C$13,SMALL(IF(MATCH($C$3:$C$13,$C$3:$C$13,0)=ROW($A$1:$A$11),ROW($A$1:$A$11),4^6),COLUMN(A1))),"")

以上两个为数据公式,单元格中输入后,需要Ctrl+Shift+Enter三键齐按结束,Excel会自动生成{}。

第2个回答  2019-04-01

E3输入

=INDEX(A$3:A$100,MATCH(0,COUNTIF(E$2:E2,A$3:A$100),))&""

数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,再向下填充。

F3输入

=IFERROR(INDEX($B$3:$B$100,MATCH($E3&F$2,$A$3:$A$100&$C$3:$C$100,)),"")

也是数组公式,操作同上,再向右和向下填充。

本回答被提问者采纳
第3个回答  2019-04-01

F3输入

=SUMIFS($B$3:$B$13,$A$3:$A$13,$E3,$C$3:$C$13,F$2)

右拉+下拉

追问

金额改成地址的话,好像不行了

第4个回答  2019-04-02
1、若是类似图一的数据求和提取,则可在F3单元格输入公式:
=SUMIFS($B:$B,$A:$A,$E3,$C:$C,F$2)
复制并下拉和右拉至L4单元格,即可。
2、若你是要地址的中文名称之类的提取,则可以在F3单元格输入公式:
=IFERROR(LOOKUP(1,0/(($A$3:$A$13=$E3)*($C$3:$C$13=F$2)),$B$3:$B$13),"")
复制并下拉和右拉,即可。
相似回答