ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: wshcw

[Excel 函数与公式] [52期]提取最左边的数字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-9-9 21:45 | 显示全部楼层
174 字
=IF(OR(ISERR(FIND(LEFT(A2,1),"-1234567890")),LEN(A2)=0),"",--LEFT(A2,MATCH(FALSE,ISNUMBER(--MID(IF(ISERROR(FIND(".",A2)),A2,REPLACE(A2,FIND(".",A2),1,0)),ROW($2:$99),1)),0)))

163 字
=IF(OR(ISERR(FIND(LEFT(A2,1),-5^19)),LEN(A2)=0),"",--LEFT(A2,MATCH(FALSE,ISNUMBER(--MID(IF(ISERR(FIND(".",A2)),A2,REPLACE(A2,FIND(".",A2),1,0)),ROW($2:99),1)),0)))

[ 本帖最后由 泓() 于 2009-9-10 19:11 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-10 01:58 | 显示全部楼层
公式比较多哈,有成品有半成品有缺陷品
干脆上传文件了
文件中几个半成品找到了位置,可怎么就不能left了捏

-----------------------------------------------------------------------------

2009-9-13
修改如下
1、将字符串假设为99定长
2、修正了sum+frequency及max+frequency半成品公式(设为定长后frequency就可以用啦
3、增加了6、7、8三个公式


------------------------------------------------------------------------------

2009-9-14
修改如下
1、增加min函数同时增加了9、10两个公式
2、第10行中标记应用的主要函数,方便浏览

[ 本帖最后由 biaotiger1 于 2009-9-14 08:18 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-10 15:04 | 显示全部楼层
也来凑个热闹...

[ 本帖最后由 jyhxr 于 2009-9-10 15:44 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-11 13:14 | 显示全部楼层
看似簡單,做起來還真不容易。

[ 本帖最后由 yongbin 于 2009-9-14 09:11 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-11 20:19 | 显示全部楼层


[ 本帖最后由 东方之珠0 于 2009-9-12 13:34 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-13 07:56 | 显示全部楼层
供参考。。。数组公式
58字符=LEFT(A2,MATCH(,-TEXT(MID(A2,ROW($1:$60),2),"#.0;;;!0"),))
71字符=LOOKUP(9^9,--LEFT(LEFT(A2,COUNT(-MID(A2,ROW($1:$50),2))),ROW($1:$50)))
72字符=LEFT(A2,MATCH(1,--ISERR(FIND(MID(A2&"a",ROW($1:$99),1),"-."&56^7)),)-1)
73字符=LEFT(A2,MATCH(,-ISNUMBER(FIND(MID(A2&"a",ROW($1:$99),1),"-."&56^7)),)-1)
78字符=LOOKUP(9^9,--LEFT(LEFT(A2,SUM(1-ISERR(-MID(A2,ROW($1:$50),2)))),COLUMN(A:Z)))
97字符=LEFT(A2,MATCH(TRUE,(CODE(MID(REPLACE(LOWER(A2),FIND("%",A2&"%"),1,)&"a",ROW($1:$90),1))>96),)-1)
94字符=LEFT(A2,MATCH(,(CODE(MID(A2&" ",COLUMN(1:1),1))<58)*(CODE(MID(A2&" ",COLUMN(1:1),1))>44),)-1)
98字符=REPLACE(A2,MATCH(,(CODE(MID(A2&" ",COLUMN(1:1),1))<58)*(CODE(MID(A2&" ",COLUMN(1:1),1))>44),),9,)
100字符=LEFT(A2,MATCH(,-ISERR(FIND(MID(UPPER(A2)&"A",ROW($1:$90),1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ%年月日")),)-1)
2009年9月16日补充:
84字符=LEFT(A2,MATCH(TRUE,MID(REPLACE(A2,FIND("%",A2&"%"),1,)&"a",ROW($1:$90),1)>="A",)-1)
89字符=LEFT(A2,MATCH(TRUE,RIGHT(LEFT(REPLACE(A2,FIND("%",A2&"%"),1,)&"a",ROW($1:$99)))>"9",)-1)
2009年9月17日补充:
94字符=LEFT(A2,MATCH(3,ERROR.TYPE((MID(REPLACE(A2,FIND("%",A2&"%"),1,)&"a",COLUMN(1:1),1)&0)*0),)-1)

[ 本帖最后由 zengyidin 于 2009-9-17 14:59 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-13 17:57 | 显示全部楼层
请楼主审阅!!!!

再战!!!!!!!!!!

见以下附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-13 22:43 | 显示全部楼层
=--LEFT(A2,MIN(IF(ISERR(FIND(MID(A2&" ",ROW($2:$20),1),"0123456789.")),ROW($1:$19))))
=--REPLACE(A2,MIN(IF(ISERR(FIND(MID(A2&" ",ROW($2:$20),1),"0123456789.")),ROW($2:$20))),99,"")
=--LEFT(A2,MIN(IF(ISERR(FIND(RIGHT(LEFT(A2&" ",ROW($2:$20))),"0123456789.")),ROW($1:$19))))
=--REPLACE(A2,MIN(IF(ISERR(FIND(RIGHT(LEFT(A2&" ",ROW($2:$20))),"0123456789.")),ROW($2:$20))),99,"")
=LOOKUP(9E+307,--LEFT(LEFT(A2,MIN(SEARCH({"|","e","%","年"},A2&"|e%年"))-1),ROW($1:$99)))

===========================================================================
1与3和2与4在思路上没多少区别吧。要说区别仅仅是把简单化为复杂而已。

                                                                             ===wshcw===

===========================================================================
同意版主所言, 1 和 3 及 2 和 4 太相似, 现再加两道公式, 凑够数:
=--LEFT(A2,MIN(IF(ISNUMBER(FIND(MID(A2&"|",ROW($1:$19),1),"1234567890-."))*ISERR(FIND(MID(A2&"|",ROW($2:$20),1),"1234567890-.")),ROW($1:$19))))
=--LEFT(A2,LEN(A2)+1-LOOKUP(2,1/ISERROR(FIND(LEFT(RIGHT(A2&"|",ROW($1:$20))),"1234567890-.")),ROW($1:$20)))

[ 本帖最后由 kowloon 于 2009-9-20 13:18 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-14 07:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=LEFT(A2,MATCH(2,FIND(--LEFT(A2,ROW($1:$20)),A2)))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-9-16 15:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
今天刚看到题目,给出题者提几个意见:
1,关于规则第4条,“公式向下填充时不能出现错误”,不太清楚这条规则是需要说明公式可以向下复制来A列各数据对应的计算结果呢,还是希望当A列数据为空时能够包含排错的处理。其实可以说得更明确一些:当A列为空单元格时,公式应当能够不返回错误值(用什么返回值替代?)
不知道我的规则理解是不是这个意思。
2,关于规则第4条,通用性。对于这类题目通用性有点难以界定,因为字符串的可能性还是很多的,A2:A8只包含了几种情况,还有其他一些情况没有包含进去,例如字符串中包含“-”、“/”、字符串中数字长度大于15位等等。
对于求单个公式解答来说,要求具有广泛的通用性还可以说的过去,但是题目要求多解,那么通用性范围是否能够再明确一些。是否满足A列的几个举例就算合格了?还是有其他通用性的要求?
3,求多个公式。这个又是一件很难界定的事情。虽然规则里面提到核心函数不同才能算不同的公式,但一个公式里面到底哪个算“核心函数”?这个也不太好判断吧。

题目本身没有问题,就是出题规则应该稍稍再明确、严谨一些。这样对答题者答题和评卷者判分都有好处,对吗。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 18:34 , Processed in 0.039584 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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