楼主: gouweicao78
7433 1

[学习分享] 【公式解析系列】之合并同类项文本 [推广有奖]

  • 0关注
  • 0粉丝

大专生

63%

还不是VIP/贵宾

-

威望
0
论坛币
155 个
通用积分
0.0734
学术水平
0 点
热心指数
5 点
信用等级
0 点
经验
612 点
帖子
32
精华
0
在线时间
67 小时
注册时间
2010-1-6
最后登录
2020-3-30

楼主
gouweicao78 发表于 2010-4-20 15:23:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
【公式解析系列】之合并同类项文本 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(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步的解析,把公式向下复制后,得到如下效果:
合并后的文本结果.jpg

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

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


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

扫码加我 拉你入群

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

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

关键词:同类项 Excel 2007 COUNTIF vlookup lookup 文本 公式 解析 同类项

合并同类项解读.jpg (138.78 KB)

合并同类项解读.jpg

沙发
zm0115 发表于 2010-10-13 13:32:35
这么好的东西没人顶啊,

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 07:47