楼主 gouweicao78 |
【题目】有A、B二列数据,怎样在A列数据相同时将B列数据合并到一单元格?并且当B列上首个单元格的字符不满8个字节时以空格填满8个字节,然后写下几个单元格的字符。 【示例】 如图:因为A2的代码唯一,所以B2值为预亏,因为不满8个字节,填充4个空格。 因为A3、A4、A5代码一样,所以要将B3、B4、B5合并到B3单元格,因为B3值为H股,不满8个字节,填充5个空格后再合并。 【解法】 C2单元格输入普通公式
【解析】 1、LEFTB作何用?因为题目要求“首个记录不满足8字节”的要补足空格。LEFTB可以将汉字作为双字节对待。 2、B2&REPT(" ",8*(COUNTIF(A$2:A2,A2)=1))——当A2是首次出现时,REPT生效,在B2后面加上8个空格,非首次出现这Rept了0个空格。 结合1、2点,满足题目要求的“首个记录不足8字节用空格补足”。 3、IF(COUNTIF(A3:A10,A2)——注意:公式是在C2单元格,而COUNTIF第1参数用的是A3:A10,也就是看看“下面还有没有A2一样的股票代码”,如果有,进入VLOOKUP查找。 4、VLOOKUP(A2,A3:C10,3,0)——注意①在A3:C10中查找A2;②返回第3列,也就是C列的值。③第4参数为0,精确查找,也就是查找“第一个”记录。 综合起来,就是在“下面找与A2代码一样的对应的C列的值”,下面的C列的值也是公式计算出来的,相当于“预支”了下一步公式的结果,有点让人费解,不过先从下面输入公式再倒过来向上复制的话,意思就容易明白了。呵呵,“逆向思维”很重要。 结合3、4点,也就是下面还有与当前相同的,就把下面的文本合并到当前文本后面,否则就把“空文本”合并到当前文本后面——也就是尾巴不加东西了。 5、由1~4步的解析,把公式向下复制后,得到如下效果: 那么,怎样才能去掉不是首次出现的股票代码对应的合并文本呢? 从公式看,单元格在上面的公式要依赖于单元格在下面的公式得到的结果,因此做成""空文本显然达不到效果,是否还需要辅助列呢? 不用,条件格式帮你忙!除了""合并,还可以利用条件格式将字体颜色设置与单元格底色一致(比如白色),以便达到“看不到”这些多余记录的效果。 Excel 2007版、2010版新增功能,在条件格式设置中,可以设置单元格自定义数字格式,将其设置为3个分号;;;表示正数、负数、零和文本都不显示,这一招隐藏就让多余的记录更“深藏不露”了。 如图: 【附件】 合并同类项(公式+条件格式).rar |
2楼 gouweicao78 |
“逆向”阅读,从下而上看: |
3楼 wangqilong1980 |
逝者如斯夫 不舍昼夜。 |
4楼 lrlxxqxa |
“逆向思维”很重要! |
5楼 LOGO |
学习了,谢谢分享. |
6楼 houtian23 |
逆向思维 太厉害了 不知道几时才能达到草版的境界啊 |
7楼 好大一棵树王玉 |
这种方法头一次接触,学习了谢谢版主! |
8楼 心痛神伤 |
思维跟不上啊 |
9楼 fanglilian |
已学习 |
10楼 cc100 |
思维跟不上啊 |
11楼 墨香雪 |
这种方法头一次接触,学习了谢谢版主 |
12楼 icenotcool |