Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: 天务

[已解决]怎样去掉尾巴

  [复制链接]
 楼主| 发表于 2011-5-30 14:18 | 显示全部楼层
回复 lotte 的帖子

实际中的名称,还有这样的,
QQ截图未命名.jpg

点评

都是以柄和耳结尾的啊,没发现其他汉字结尾的  发表于 2011-5-30 14:42
说清楚原始数据是什么,想要得到什么结果。  发表于 2011-5-30 14:30
回复

使用道具 举报

发表于 2011-5-30 14:28 | 显示全部楼层
说清楚原始数据是什么,想要得到什么结果。好让大侠帮你。不然可能兜好大圈子。

我有教训。
回复

使用道具 举报

 楼主| 发表于 2011-5-30 14:29 | 显示全部楼层
回复 sunjing-zxl 的帖子

师父经常用数组公式解决问题,我目前还看不太懂。
回复

使用道具 举报

发表于 2011-5-30 14:33 | 显示全部楼层
回复 天务 的帖子

要达到通用性,这个题只能用数组方便一点。。
MID(A1,1,RIGHT(MAX(LENB(MID(A1,ROW($1:$99),1))*100+ROW($1:$99)),2))
这个公式才是主干,外面那个SUBSTITUTE是不得已而用之,主要是因为 φ 这个字符不是汉字,但他又有两个字节用lenb不能判断。


回复

使用道具 举报

 楼主| 发表于 2011-5-30 14:41 | 显示全部楼层
回复 sunjing-zxl 的帖子

mid的第3个参数应该是一个数值,怎么会是由right函数返回呢?
另外lenb参数计算的结果,为什么还要乘以100。
水平太差了,是真的看不懂。
回复

使用道具 举报

发表于 2011-5-30 15:03 | 显示全部楼层
回复 天务 的帖子

MID(A1,1,RIGHT(MAX(LENB(MID(A1,ROW($1:$99),1))*100+ROW($1:$99)),2))公式分析
下面以A1分析
MID(A1,ROW($1:$99),1)
将A1文本一个字一个分开,生成一个数组{"1";"9";"硅";"胶";"大";"耳";"-"}后面的""没有写了
LENB(MID(A1,ROW($1:$99),1))
求每个字的字节数
数字和字母等符号返回1,汉字返回2,(但还是有一些符号仍然要返回2,比如φ)
那么就得到结果
{1;1;2;2;2;2;1}后面还有很多0也没有写了
然后乘以100,那么2就是最大的。
{100;100;200;200;200;200;100}
然后加+ROW($1:$99)
就把最后一个2变成了最大值
{101;102;203;204;205;206;107}
然后用max取最大值,206,用right取后两位就是最后一个2个字节字的位置了
本例就为6,这个就是我们想要的最后一个数字
然后用mid取到最后一个就是了
再用SUBSTITUTE函数来替换,主要是因为φ站2个字节,所以最后取出来含有φ,所以字节替换掉就行了
回复

使用道具 举报

发表于 2011-5-30 15:13 | 显示全部楼层
=LEFT(A1,MAX(IF(MID(A1,ROW($1:$99),1)>="吖",ROW($1:$99))))

评分

参与人数 1 +21 收起 理由
sunjing-zxl + 21 我就是不知道汉字的最小是哪一个。学习了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-5-30 15:16 | 显示全部楼层
回复 sunjing-zxl 的帖子

说得这么详细,我都不好意思了。
现在是看明白了,主要原因还是对数组不够熟悉的问题。我想当然认为right是截取文本的,想错了!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 12:42 , Processed in 0.361867 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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