发布网友 发布时间:2024-07-16 00:54
共1个回答
热心网友 时间:2024-07-19 00:48
1.现有一张EXCEL工作表,第一列为“代码”,第二列为“计量单位”,第一列有很多重复的代码对应第二列不同的计量单位,现需要将这种格式合并成右边的格式,也就是代码是唯一的,代码对应的计量单位用分行隔开。
2
2.选中“源数据”表的A2:A171区域,将名称定义为“代码”。
3
3. 选中“源数据”表的B1:B171区域,将名称定义为“计量单位”。
4
4.将“源数据”表中的A列复制到“处理过程”表A列里。
5
5.选中“处理过程”表中的代码,依次点击“数据”—“删除重复项”,使得代码只保留唯一值。
6
6.发现117个重复值,保留了53个唯一值。
7.在“处理过程”表C2单元格输入公式“=COUNTIF(代码,A2)”,统计各代码对应有几条“计量单位”记录。
8.将“处理过程”表C2单元格的公式向下复制到“代码”行的最后一个代码所在的行。这样每个代码所对应的记录条数都统计出来了。
9.在“处理过程”表D2单元格输入公式“=MAX(C2:C54)”,统计出各代码对应的记录条数的最大值,本例的最大值是“13”,也就是说某个代码对应的计量单位的最大记录条数是13。
10.在“处理过程”表E1单元格输入公式“=COLUMN()-4”,使得E1单元格的值等于1,然后将公式向右复制到Q1单元格,Q1单元格的值等于13,也就是记录条数的最大值。
11.在“处理过程”表E2单元格输入公式“=IFERROR(IF(F2<>"",INDEX(计量单位,SMALL(IF(代码=$A2,ROW($2:$171),99999),E$1))&";",INDEX(计量单位,SMALL(IF(代码=$A2,ROW($2:$171),99999),E$1))&""),"")”,然后同时按下“shift+Ctrl+enter”键,生成数组公式。
12.将这个数组公式向右复制到Q2单元格,然后再将E2:Q2的公式向下复制到E54:Q54。
13.此时,各代码所对应的记录全部生成到E2:Q54单元格了。
14.在“处理过程”表B2单元格输入公式“=CONCATENATE(E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2)”,将E2:Q2单元格的文本合并到B2单元格。
15.将B2单元格的公式向下复制到B54单元格。
16. 此时,各代码所对应的记录全部合并到B列的单元格里,并用分号进行了分割。如果需要在其他EXCEL工作表中使用处理过的结果,请使用“选择性粘贴—数值”,以免出现错误。