搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  合并同类项(公式+条件格式).rar
资料下载链接地址: https://bbs.pinggu.org/a-612854.html
本附件包括:
  • 合并同类项(公式+条件格式).xlsx
附件大小:
22.81 KB   举报本内容
【公式解析系列】之合并同类项文本 http://www.exceltip.net/thread-7091-1-1-2.html

【附件】

【题目】有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(B2&REPT(" ",8*(COUNTIF(A$2:A2,A2)=1)),8)&IF(COUNTIF(A3:A10,A2),VLOOKUP(A2,A3:C10,3,0),"")
复制代码
【解析】
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个分号;;;表示正数、负数、零和文本都不显示,这一招隐藏就让多余的记录更“深藏不露”了。
如图:



【图解】逆向思维,从下而上读公式


    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2026-1-11 07:24