问题场景
A列数据中存在很多特别的情况:
- 中间分隔符为“/”,但是分隔符前后可能存在空格
- 一个编号可能出现多次,例如示例中6003出现了5次
- 可能为空,虽然节选的这部分没出现这种情况
B和C列数据中,会出现空格。
A | B | C |
---|---|---|
6003 | AAA | L7 |
6003/ 6007/6001 | AA | L6 |
6000/6003/6009 | A | L1 |
6000 / 6003 | AA | L8 |
6003 | L9 |
现在需要在新的Sheet中对原先的Sheet有以下操作:
- 从不重复的提取出所有编号,例如该节选数据结果是6003、6007、6001、6000、6009
- 对于提取的编号给予最后一次出现的行号,例如1中对应结果是5,2,2,4,3
- 根据编号最后一次出现的行号提取B和C的信息,如果不为空则填入想同行的B和C列的信息,如果为空则寻找上一次出现的内容,例如最后一次6003为空,则找到上一次是第4行,输出AA
根据以上信息,示例数据的结果应该是:
A | B | C |
---|---|---|
6003 | AA | L9 |
6007 | AA | L6 |
6001 | AA | L6 |
6000 | AA | L8 |
6009 | A | L1 |
代码描述
- 分析和提取每个单元格中的编号。
- 记录每个编号最后出现的行号以及对应的B和C列数据。
- 填充新Sheet中的数据,如果B或C列为空,则查找之前的非空数据。
中文版
Sub ProcessData