EXCEL中怎样将同列不同行相同一人的数据合并到一行?

如下图。麻烦请写清详细步骤。大量数据修改一定请解释清楚详细步骤。

在EXCEL中将同列不同相同人的数据转换到一行中,首先考虑的就是INDEX引用。

在姓名张三旁边输入公式并向右向下填充公式,如下:

=IFERROR(INDEX($D$3:$D$13,LARGE(($C$3:$C$13=$G3)*ROW($1:$11),IF(COLUMN(A1)<=COUNTIF($C$3:$C$13,$G3),COLUMN(A1),""))),"")

注意:不能直接按回车键,这是数组公式需要按<Ctrl+Shift+Enter>三键组合来结束公式编辑,结束后Excel会自动生成一对大括号在公式的两端。

公式含最终结果图片

整体思路:

    利用IFERROR判断公式是否为错误值,不为错误值就显示结果,如果是错误值就显示为空值;INDEX函数引用数据,其主要作用在于它的第二个参数LARGE函数公式;

利用LARGE求某个区域中第几大值的这个特性提取INDEX函数第二个参数应该取多少。

最后可以通过公式计算一步一步计算观察结果的变化。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-09-02

由于源数据中同一时间同一人有相同记录,故先用if( )函数决断错位,然后用vlookup( )函数来达到寻值,如下:

1、加入一列“时间+姓名”,值为 A2=B2&C2, 下拉,以此列进行排序;

2、扩展电话,向右横拉,得到电话1+电话2+电话3....(目前重复值多少);

3、E2=IF($A3=$A2,D3,0),  F2=IF($A3=$A2,E3,0), G2=IF($A3=$A2,F3,0), 横向定义公式,直到有 0 出现而止, 三个单元格公式定义完成后,向下竖拉,如上图;

4、复制源数据表A B C三列,在另一地方粘贴,再数据---删除重复项,得到前三列唯一记录,如下图:

5、电话0、电话1.....定义公式,向右直到 0 出现(最大重复记录), 然后向下竖拉公式,

M2=VLOOKUP($J2,$A$2:$G$19,4,0),  N2=VLOOKUP($J2,$A$2:$G$19,5,0), O2==VLOOKUP($J2,$A$2:$G$19,6,0), P2==VLOOKUP($J2,$A$2:$G$19,7,0)


 复制数字,选择粘贴为数值,删除不用的列,美化表格,

OK了,可以再交流。

第2个回答  2019-09-01

    步骤一:

2. 步骤二:

=INDEX($B:$B,SMALL(IF($A:$A=$D3,ROW($A:$A),4^8),COLUMN(A$1)))&""

数组公式,按ctrl+shift+enter产生花括号。

追问

麻烦能讲下第二步的详细步骤和公式用法吗

追答

图上都有,写入筛选公式,拖动填充即可。

第3个回答  2019-09-01
看你有多少了,少的话,比如100个,那么就是先来个排顺序,然后判断,相同的给弄成一个色,很多相同的话,眼睛看都看的出了,加一行空白,然后复制数字到右边一列。
第4个回答  2019-09-02
j加个辅助列轻松解决,把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删),excel样表文件(把现状和目标效果表示出)作为附件发到yqch134@163.com帮你看下
相似回答