Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8174|回复: 36

[习题] 201401函中级班练习05

[复制链接]
发表于 2014-7-25 16:42 | 显示全部楼层 |阅读模式
本帖最后由 danny-fei 于 2014-8-7 13:04 编辑

函数中级班练习题5:文本合并
注意:
1、练习请以附件方式或代码提交,压缩文件以论坛ID及学号命名,如:C01-qh86003;
2、跟帖不要重复占楼,要修改直接在原楼层编辑,不要回复学委的批改;本帖已设置回帖仅作者可见;
3、非本班学员请勿跟帖,否者扣分删帖处理;
4、练习截止时间:2014年8月7日晚8:00,过期不予批改

兰色-练习题1.zip

5.18 KB, 下载次数: 376

评分

参与人数 3 +59 金币 +30 收起 理由
刘苏 + 20 赞一个!
jio1ye + 9 很给力!
风林火山 + 30 + 30 赞一个!兰色辛苦了

查看全部评分

 楼主| 发表于 2014-8-7 12:30 | 显示全部楼层
本帖最后由 danny-fei 于 2014-8-7 12:44 编辑

1. 答题截止。

2. 出这个题目,主要是为了让大家练习使用 VLOOKUP,IF,TRIM, LEN函数等等;在使用VLOOKUP函数,公式本身所在的列,也可以做为 Table_array进行引用,是不是让新学者大家眼前一亮?

3. 这是我预设的,比较常规的公式:(不知道什么原因,贴上来总会多出来好几个$号,请大家复制时删除)
  1. =IF(LEN(A2)>4,VLOOKUP(LEFT(A2,LEN(A2)-2),$$$$A$$$$1:C1,3,)&"",)&TRIM(B2)
复制代码
1).首先判断 A列的长度是否>4,如果否,说明是一级科目,则直接等于当前行的第二列即TRIM(B3),TRIM是去掉空格;如果是,则说明此行是二级明细科目,则需要在前面追加上一级科目,利且VLOOKUP函数获得:

2)对VLOOKUP函数的第一参数LOOKUP_value进行处理,减掉2位LEFT(A3,LEN(A3)-2),即得到上一级的科目代码, Table_array随着公式的下拉进行变化,这里注意的是,该区域引用了公式所在的列。

4. 感谢如下大神提供的我认为优秀公式,奇特思路:
   3楼  
滴答滴
  1. =IF(LN(A2)>9,VLOOKUP(INT(A2%)&"",A:C,3,)&"",)&TRIM(B2)
复制代码
  1. =IF(LN(A2)>9,LOOKUP(INT(A2%)&0,A:C)&"",)&TRIM(B2)
复制代码
6楼 蝶舞
  1. =IF(LEN(A2)<5,,VLOOKUP(INT(A2%)&"",A:C,3,)&"")&TRIM(B2)
复制代码
5. 感谢大家支持,祝大家此次课程收获多多!  


点评

给力君~  发表于 2014-8-9 10:17

评分

参与人数 4 +51 金币 +50 收起 理由
刘苏 + 20 赞一个!
笨笨四 + 30 + 30 神马都是浮云
lmze2000 + 1 很多赞,虽然只能+1分!
26759761@qq.com + 20 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 17:06 | 显示全部楼层
本帖最后由 蓝粆 于 2014-7-28 14:59 编辑

{:02:}  哗啦啦~~
  1. =IF(LEN(A2)=4,B2,VLOOKUP(LEFT(A2,4),A$2:B$25,2,))&IF(LEN(A2)<>4,""&TRIM(B2),"")
复制代码

评分

参与人数 1金币 +10 收起 理由
danny-fei + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 17:18 | 显示全部楼层
本帖最后由 滴答滴 于 2014-7-26 14:01 编辑
  1. =IF(LEN(A2)>4,VLOOKUP(LEFT(A2,LEN(A2)-2),A$1:C1,3,)&"",)&TRIM(B2)
复制代码
vlookup简化:
  1. =IF(LN(A2)>9,VLOOKUP(INT(A2%)&"",A:C,3,)&"",)&TRIM(B2)
复制代码
因为数据整体升序,可以用lookup
  1. =IF(LN(A2)>9,LOOKUP(INT(A2%)&0,A:C)&"",)&TRIM(B2)
复制代码

点评

优秀答案,学习了  发表于 2014-8-7 10:45

评分

参与人数 11 +72 金币 +83 收起 理由
hsl215 + 3 很给力!
笨笨四 + 30 + 30 精彩!
MCQUEEN + 3 妹纸,我好崇拜你
蓝粆 + 10 差距就是:我知道可以用LOOKUP,但是...
《渐行渐远》 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 17:39 | 显示全部楼层
课前练习。

兰色-练习题1-ldxhzy.zip

6.29 KB, 下载次数: 30

点评

很平顺的思路,逐层IF判断  发表于 2014-8-7 10:48

评分

参与人数 1金币 +10 收起 理由
danny-fei + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 17:51 | 显示全部楼层
123

兰色-练习题1-chh0926.zip

5.39 KB, 下载次数: 22

点评

正确,开贴后学习一下其他人的经典思路,会有更多收获  发表于 2014-8-7 10:50

评分

参与人数 1金币 +10 收起 理由
danny-fei + 10 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 20:24 | 显示全部楼层
  1. =IF(LEN(A2)<5,,VLOOKUP(INT(A2%)&"",A:C,3,)&"")&TRIM(B2)
复制代码

评分

参与人数 4 +51 金币 +60 收起 理由
笨笨四 + 30 + 30 精彩!
lmze2000 + 1 赞一个!
26759761@qq.com + 20 + 20 赞一个!
danny-fei + 10 多谢捧场

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 22:26 | 显示全部楼层
我不是故意这么长的 真不是故意的
  1. =IF(LEN(A2)=4,B2,IF(LEN(A2)=6,VLOOKUP(LEFT(A2,4),A:B,2,)&""&TRIM(B2),VLOOKUP(LEFT(A2,6),A$1:C1,3,)&""&TRIM(B2)))
复制代码

评分

参与人数 1金币 +10 收起 理由
danny-fei + 10 你肯定是故意这么长的,

查看全部评分

回复

使用道具 举报

发表于 2014-7-25 22:50 | 显示全部楼层
本帖最后由 MCQUEEN 于 2014-7-26 11:08 编辑
  1. =IF(LEN(A2)=4,B2,IF(LEN(A2)=6,VLOOKUP(LEFT(A2,4),A:B,2,)&""&TRIM(B2),VLOOKUP(LEFT(A2,4),A:B,2,)&""&TRIM(VLOOKUP(LEFT(A2,6),A:B,2,))&""&TRIM(B2)))
复制代码

点评

用了多段 VLOOKUP,应该可以优化  发表于 2014-8-7 10:52

评分

参与人数 2 +6 金币 +10 收起 理由
jio1ye + 6 赞一个!
danny-fei + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-26 01:23 | 显示全部楼层
本帖最后由 一杯清荼 于 2014-7-26 01:26 编辑

=IF(LEN(A2)=4,B2,VLOOKUP(LEFT(A2,LEN(A2)-2),A$1:C1,3,)&"\"&TRIM(B2))

评分

参与人数 1金币 +10 收起 理由
danny-fei + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-26 07:14 | 显示全部楼层
  1. =SUBSTITUTE(IF(LEN(A2)=4,,IF(LEN(A2)=6,VLOOKUP(LEFT(A2,4),$$A$$2:$$B$$25&"",2,)&"",VLOOKUP(LEFT(A2,6),IF({0,1},C$$1:C1,A$$1:A1),2,)&""))&B2," ",)
复制代码

点评

你公式贴的有问题吧,你再看看?  发表于 2014-8-7 10:55

评分

参与人数 1金币 +5 收起 理由
danny-fei + 5 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 22:08 , Processed in 0.228006 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表