全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
7398 1
2010-04-20
【公式解析系列】之合并同类项文本 http://www.exceltip.net/thread-7091-1-1-2.html

【附件】
合并同类项(公式+条件格式).rar
大小:(22.81 KB)

 马上下载

本附件包括:

  • 合并同类项(公式+条件格式).xlsx



【题目】有A、B二列数据,怎样在A列数据相同时将B列数据合并到一单元格?并且当B列上首个单元格的字符不满8个字节时以空格填满8个字节,然后写下几个单元格的字符。
【示例】
合并同类项问题.jpg
如图:因为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步的解析,把公式向下复制后,得到如下效果:
合并后的文本结果.jpg

那么,怎样才能去掉不是首次出现的股票代码对应的合并文本呢?
从公式看,单元格在上面的公式要依赖于单元格在下面的公式得到的结果,因此做成""空文本显然达不到效果,是否还需要辅助列呢?

不用,条件格式帮你忙!除了""合并,还可以利用条件格式将字体颜色设置与单元格底色一致(比如白色),以便达到“看不到”这些多余记录的效果。
Excel 2007版、2010版新增功能,在条件格式设置中,可以设置单元格自定义数字格式,将其设置为3个分号;;;表示正数、负数、零和文本都不显示,这一招隐藏就让多余的记录更“深藏不露”了。
如图:
条件格式屏蔽.jpg


【图解】逆向思维,从下而上读公式
附件列表
合并同类项解读.jpg

原图尺寸 138.78 KB

合并同类项解读.jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2010-10-13 13:32:35
这么好的东西没人顶啊,
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群