ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] Step By Step,我们一起学习函数与公式(开课了...)

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-12-24 20:32 | 显示全部楼层
本帖已被收录到知识树中,索引项:公式基础
谢谢胡版主, 辛苦了!!!能学到好多东西

TA的精华主题

TA的得分主题

发表于 2009-12-24 21:45 | 显示全部楼层
跟着版主学习函数就会有进步!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-12-24 22:03 | 显示全部楼层
本帖最后由 胡剑0227 于 2012-8-21 11:43 编辑

栖息地

        “谁人不识君”,这个特性可能算是“百姓日用而不知”之类,掌握这一技巧可以解决很多传递的问题,扩大很多基本功能的作用范围。今天要介绍的“栖息地、预处理”的功能,依然会让你有所收获。
        “栖息地”听上去有点自然保护区的味道。是的,“名称”是宏表函数的“栖息地”,宏表函数是早期版本的产物,但非常好用,能弥补常规工作表函数的很多不足,因此在新版本中都进行了保留。

提取颜色
        比如,有时候我们对单元格的颜色比较感兴趣,心血来潮时还想使用颜色进行排序。当然在07版中这一切都没有问题啦,群众的需求是要考虑的,所以在07版中可以直接对颜色排序、对颜色筛选。但考虑到有部分战友还战斗在03版这块阵地上,所以可能就需要使用宏表函数GET.CELL函数来助助阵。

插图:
1.png

        
        上图中通过辅助列,使用名称“纸色”提取了对应的颜色数值。这样就提取了颜色的信息量,以后就可以按照这个辅助列进行排序、筛选,迂回方式却也达到了目的。感叹,还是用07好呀,呵呵。
到这里大家可能还体会不到名称的作用在哪里?当你失去的时候才知道要好好珍惜。我们看一下,如果不用名称:

插图


        上图,在编辑完公式“=get.cell(38,$E2)”按回车后,Excel立即报错,说什么什么无效?根据归一化查错技巧,我们发现不同之处就在于一个使用了“名称”进行了封装,一个没有,所以名称的作用就很明显了。
        GET.CELL是一个宏表函数,在工作表中不能直接使用,而在“名称”中却可以,估计就涉及到“名称”的出生了,前面猜想过“名称”可能直属于工作簿的,所以它可以直接调用工作簿的资源。
        
        这里,GET.CELL函数的第一参数 “38” 指定了该函数的功能,即提取填充色,第二参数引用方式上有点小技巧,使用了行变列不变的方式。如果我告诉大家 提取 字体颜色 只要将 38 换成 24 就可以了,那么请大家尝试完成对 笔色 的提取。

        对应提取颜色,38,24,也许今天大家能记住,但个人感觉还是比较容易忘的,我分享一个不太容易忘得技巧,大家听了一定会觉得好笑,呵呵。3*8=24,都是颜色,所以我觉得38,24两个数值就不太会忘了。
        那哪个对应填充色,哪个又对应字体色呢?天对地,雨对风,大路对长空。平面、线条、填充色、字体色,这四个项目让我配对,我会 线条 配 字体色,平面 配 填充色,感觉中平面 是 大于线条的,所以 填充色 大于 字体色。讲得很复杂,大家就感觉一下吧 字体 和 单元格背景 哪个比较纤细哪个比较壮实吧,应该不难感觉 背景 大于 字体吧,所以38是填充色,24是字体色。

从公式文本到结果

        在论坛上我也经常看到这样的需求:一个单元格中是一个文本型的公式,要求在另一个单元格中返回该公式的运算值,如下图所示。



        这类问题只要借助宏表函数EVALUATE就比较容易解决,难点在于这个函数名比较难拼:)。求值么,所以这个词的主干是 VALUE,我想第一个 E 是使能(ENABLE)的感觉,词尾ATE,应该是动词变形后缀吧。当拼错时我就用这种方式把他给抠出来,希望必要时也能给你帮上忙,呵呵。

        同样的,EVALUATE虽好,但不能直接使用,依然要定义一个名称,如下图所示。



        当然以上应该是“EVALUATE”最简单的应用了,把握一点:其函数的参数是一个字符串的公式文本,就是说这里可以发挥想象力,充分发挥 & 和各种文本处理函数的功能,只要最后的结果是一个合法的公式字符串就可以了。下面精彩一下,呵呵。

累加单元格中的数字




        比如要达到上图的效果,C12="1,2,3",要求汇总数字?当然用数组公式是可以的,这里讲一个使用EVALUATE以比较巧妙的方式来实现。先想一个思路,当然这靠积累的,目标公式设定为“=SUM({1,2,3})”,那么分段切片,把C12的值揉入进来,具体就是:="sum({"   &    $C$12    &    "})",最后将这个公式作为EVALUATE的参数即可。

        这里要灵活应用EVALUATE,关键就是使用各种方式来构造“字符串公式文本”这个参数。

        另外,如果把公式设定为 =1+2+3,那么使用SUBSTITUTE函数把C12单元格中的“,”换成“+”也行,大家可以自己尝试。

串接常量数组

        比如定义数组1="{1;2;3}",数组2="{4;5;6}",求数组3,将数组1和数组2串接起来。目标公式:
={1;2;3;4;5;6},于是可以定义名称数组串接:=EVALUATE(SUBSTITUTE(数组1&数组2,"}{",";")),我觉得这个用法实际意义可能不是很大,但还是能让大家回味一下想象力的魅力,呵呵。(这个是当时写一个数组串接时一位网友提供的,呵呵)

引用公式

        我们的需求总是多种多样的,上面刚讲已知“字符串公式文本”想得到公式值,但有时我们有想显示目标单元格的具体公式。怎么办?依然是GET.CELL,把参数值设为6就可以了。如下图所示。






提取工作表名

        另一个经常会问到的问题是如何提取所有工作表的名称。这个问题有好几个成熟的名称,尽管如此我也常常要思索一下才能写出来,定义名称 shts:=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1),1)+1,100),这里的MID第三参数100一般情况下够用,如果工作表名称实在长那么可以调整为更大的数。
        不过,对于这个名称忘了也不要紧,只要我们能记住GET.WORKBOOK(1),就行了。这个应该还好记的。最后根据GET.WORKBOOK(1)在进行MID处理即可。如下图所示。



上图

名称就讲到这里吧,关键大家要多用。有关宏表函数的更多参考请下载附件。

栖息地预处理.rar (7.13 KB, 下载次数: 302)

有关宏表函数的更多内容请搜索相关帖子,这里给个现成的,很不错的,czzqb版主给大家的礼物http://club.excelhome.net/thread-214231-1-1.html

如果您有函数公式方面的任何想法、疑问那么请您直接跟帖,如果有小巧的例子以更透析的说明问题,那么还可以Email至sword0227@189.cn,胡剑需要您的帮助。邮件不一定回复,但胡剑感谢您的支持!永久有效

[ 本帖最后由 胡剑0227 于 2011-1-11 12:22 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-12-24 23:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
胡版辛苦!我是把帖子复制到WORD文档里再慢慢消化的。可是胡版用了很多动态图,复制到WORD后就变成静止的了。
怎么能在WORD里面直接显示那些动态图啊?谢谢!

TA的精华主题

TA的得分主题

发表于 2009-12-25 09:32 | 显示全部楼层
胡版辛苦!建议本贴置顶。收获不小,学到了很多东西。

TA的精华主题

TA的得分主题

发表于 2009-12-25 14:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
要好好学习学习,欠缺啊

TA的精华主题

TA的得分主题

发表于 2009-12-26 19:58 | 显示全部楼层
好      好 好 好 好 好 好 好 好 好 好 好 好 好 好 好

TA的精华主题

TA的得分主题

发表于 2009-12-26 20:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
初到贵宝地,果然高手如云,要好好学习

TA的精华主题

TA的得分主题

发表于 2009-12-26 21:10 | 显示全部楼层

一起把功能上传啊,不是每次都有时间上网,谢谢!

谢谢了快传啊
==============================================================================
目前只能以挤牙膏的方式发帖,希望大家能理解,同时希望大家提供更多的例子或需求。

[ 本帖最后由 胡剑0227 于 2009-12-27 11:49 编辑 ]

TA的精华主题

TA的得分主题

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

此贴不能沉

向楼主学习学习再学习~

[ 本帖最后由 renxiao860528 于 2009-12-26 22:26 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 05:48 , Processed in 0.054105 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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