ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] [求助]一个数值和文字混排的单元格,如何提取数值参与计算?

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-8-6 20:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

山兄我唯一没明白的就是Indirect在这里的用处

本帖已被收录到知识树中,索引项:FIND
QUOTE:
以下是引用GUCHENGRONG在2006-8-6 16:38:51的发言:

山兄我唯一没明白的就是Indirect在这里的用处,按了F9说我公式太长,无法计算的

另外我想把最后的ROW("A1:A"&len(A1))为什么不能计算?

谢谢了!


其实你已经明白,但明白得朦朦胧胧。

为什么说你明白?因为你想把公式改为:ROW("A1:A"&len(A1))

为什么说你明白得朦朦胧胧?因为你想把公式改为:ROW("A1:A"&len(A1))

 

因为Len(A1)=9,

目的是要返回Row(1:9)或者Row(A1:A9),进而得到结果{1;2;3;4;5;6;7;8;9}

但ROW("A1:A"&len(A1))不行,因为"A1:A"&len(A1)是一个文本,而Row()的参数必须是一个引用。

今天到朋友家过风俗节,喝了点酒,不知说得你是否听得明白。

这文本和引用的关系很微妙,Row(1:9)中,1:9是引用,"1:"&len(a1)="1:9"是一个文本,要把文本转化为引用才能供Row()使用,Indirect()的作用就是把文本转为引用。

“GUCHENGRONG 被评为本年度先进工作者”

你把奖状制作得再精美也不能使你得到荣誉得到奖励得到实惠,但这句话经领导在台上一念,把奖励颁发给你,你就不再是原来的你,你就有了光环。领导的作用就是把这“文本”转变为“引用”。

别小看了Indirect(),它是领导,在Indirect("1:"&Len(A1))=Indirect("1:9")的作用下,文本"1:9"由文本变成了1:9(引用)。

 

想看它的计算过程,请这样做:

=LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&LEN(A1)))))

=LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&9))))

=LOOKUP(9E+307,--MID(A1,3,{1;2;3;4;5;6;7;8;9}))

接着原文往下看。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-8-6 23:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢山兄,请问您是不是老师阿?呵呵,为什么能举出则的么多例子,通俗易懂,让我们看了想忘也难阿,

接下来就只能看自己该如何运用了!呵呵

TA的精华主题

TA的得分主题

发表于 2006-8-6 23:43 | 显示全部楼层
QUOTE:
以下是引用GUCHENGRONG在2006-8-6 23:10:43的发言:

谢谢山兄,请问您是不是老师阿?呵呵,为什么能举出则的么多例子,通俗易懂,让我们看了想忘也难阿,

接下来就只能看自己该如何运用了!呵呵

30年的小学老师,佩服吧!http://club.excelhome.net/viewthread.php?tid=180470&replyID=476854&skin=0

TA的精华主题

TA的得分主题

发表于 2006-8-7 23:23 | 显示全部楼层
QUOTE:
以下是引用aichong在2006-8-6 23:43:53的发言:

30年的小学老师,佩服吧!http://club.excelhome.net/viewthread.php?tid=180470&replyID=476854&skin=0

佩服呵呵,不得不佩服!致敬!

也配服您这帖子也能找到!哈哈!

TA的精华主题

TA的得分主题

发表于 2006-8-8 00:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-8-8 10:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

刚刚看到山菊花老师的资料,原来真的是老师啊,以前在EH中总是称呼老师,还是称呼对了,呵呵。也谢谢aichong老师给的链接。

顺便再请教山菊花老师一个问题,gvtwn版主的公式中=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))   为什么要用MIN()呢?既然FIND()总是返回到第一个值,我想MIN()在这里就没有什么作用了,而且我也试过,去掉MIN()后公式一样工作,但gvtwn版主深不可测,用了MIN()后肯定是有道理的。

TA的精华主题

TA的得分主题

发表于 2006-8-8 13:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

这个Min()是万万少不得的

QUOTE:
以下是引用solextrade在2006-8-8 10:56:15的发言:

顺便再请教山菊花老师一个问题,gvtwn版主的公式中=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))   为什么要用MIN()呢?既然FIND()总是返回到第一个值,我想MIN()在这里就没有什么作用了,而且我也试过,去掉MIN()后公式一样工作,但gvtwn版主深不可测,用了MIN()后肯定是有道理的。

不要走马看花,把公式复制到你的工作表中,按我介绍的步骤进行操作,一步一步观察计算过程和它的结果,领会公式的意图。

这个Min()是万万少不得的。

[此贴子已经被作者于2006-8-8 20:28:07编辑过]

TA的精华主题

TA的得分主题

发表于 2006-8-25 16:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有点傻眼!!!

TA的精华主题

TA的得分主题

发表于 2006-8-26 19:49 | 显示全部楼层

精彩!

有这样的老师,想不进步都难!

TA的精华主题

TA的得分主题

发表于 2006-8-30 17:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

太感谢山菊花老师了,真是个热心人。

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

本版积分规则

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

GMT+8, 2024-12-23 21:48 , Processed in 0.033029 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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