ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-12-9 23:39 | 显示全部楼层
本帖已被收录到知识树中,索引项:公式基础
睡前来瞅一眼

TA的精华主题

TA的得分主题

发表于 2009-12-9 23:42 | 显示全部楼层
楼主真的是用心了,帮助了不少的网友哦,本人根本就不懂啦!看来要好好学习了!

TA的精华主题

TA的得分主题

发表于 2009-12-10 08:50 | 显示全部楼层
好贴,跟着胡版主学习,哈哈

TA的精华主题

TA的得分主题

发表于 2009-12-10 09:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-12-10 09:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这样的贴子才是真正的好贴。

TA的精华主题

TA的得分主题

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

给楼层里大家的建议

胡健版主的热心付出给大家学习带来了很大的帮助。在版主的带领下,相信大家都会觉得自己每天都会有新的进步。于是,很想对胡健版主表达自己由衷的感激之情,包括我自己都是这样的心情,我在胡健版主的贴子里,学到了很多的东西,尤其是在数组公式方面。
     作为版主的好“学生”,我们应该和楼主一起共同维护这样的好贴子,让这里成为一个真正的学习乐园。所以,我建议,大家在贴子里那些“感谢”之类的内容就不要在这个贴子里发了,否则要不了一天,这个贴子就增加个几百层,这样,对学习的朋友们会造成很大的不便。
     除了在贴子里讨论问题、交流学习心得以外,如果真的很想对版主表达谢意。可以私发信息,也可以由一位热心的朋友在相应的版块另开一贴,所有想表达谢意的朋友都到感谢贴里去写上自己对老师的敬意,这样浩浩荡荡的一贴感谢,何等壮观啊?呵呵。。。。。大家觉得如何?

TA的精华主题

TA的得分主题

发表于 2009-12-10 09:56 | 显示全部楼层
同意 150楼的观点,这一同意由占用了一个楼层...

TA的精华主题

TA的得分主题

发表于 2009-12-10 10:55 | 显示全部楼层
一直都觉得Excel很强大,也了解一些公式的用法。但是经常在实际操作的时候,不会拐弯。其实很多函数都可以扩展使用。
谢谢版主给我们提供这样一个好的学习机会,我们会好好珍惜

TA的精华主题

TA的得分主题

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

回复 59楼 胡剑0227 的帖子

跟贴学习ing...

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-12-10 11:31 | 显示全部楼层
本帖最后由 胡剑0227 于 2011-8-17 14:15 编辑

形参表达中的玄机

        形参,调出一个函数的“函数提示工具”就能看到形参列表。根据形参的英文描述,我们就能拼凑出这个函数的功能,进而回想起这个函数该如何用,例如SUMIF函数和VLOOKUP函数

        SUMIF(range,criteria,sum_range)
        翻译:
        SUMIF(区域,关键字,汇总区域),再根据SUMIF(汇总?条件?),那么自然就能拼凑出这个函数的功能,对“range”进行“criteria”约束,并对“sum_range”汇总,简称为SUMIF(条件求和)。

        VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
        翻译:
        VLOOKUP(查找值,表格数组,(表格数组的)列索引号,区域的查找(方式)),这里个人感觉range_lookup 换成table_lookup应该更贴切。

        这样组词造句也就比较难走样了,大约就是根据vlookup_value,在table_array中查找。如果想到V代表垂直
,那么也不难揣摩查找应该是按列,并有理由相信是第一列去查找,然后返回col_index_num字段的元素,再确定
查找方式range_lookup,这里 range_lookup=0(0有种无差别的感觉),于是可以联想为精确查找,range_lookup<>0时
就是不精确查找(模糊查找)。当然,熟悉函数以后会发现精确查找一般都是查找方式设置为0.

        这样,只要用过一次VLOOKUP函数,吃过这块三明治,那么我相信再次见到它时我们马上还能回味出它的味道。
        刚开始的时候做到这样就足够了。当然如果有精力,我们还可以再从这些形参描述中提取更多信息。节
能减排么,充分利用资源自然是很重要的。

        再看SUMIF的形参,range,criteria,sum_range,有发现什么特点吗?呵呵,如果是初学,又仅仅看到一个函数
的形参是不能发现什么规律的。找规律也是有技巧的,要学会归一性原则,就是控制一个因素变化,其他因素都保持不变,然后才能让这个因素的影响显现出来。

        有点扯远了。我们这里可以粗糙的划分成两类(应该可以划分更精细,有兴趣者可以尝试,我没有深究下):形参类型 描述,形参功能 描述(这里纯是我自己擅自划分的,不具权威性,只是为了能让大家从形参中再得到些东西)

        SUMIF

        range:形参类型 描述,形参类型为 单元格区域;(这点是本节重点)
                criteria:形参功能性 描述
        sum_range:这个是带有 功能修饰的形参类型 描述,偏正短语,也归为形参类型 描述。

        VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

        lookup_value:形参功能性 描述
        table_array:带有功能修饰的形参类型 描述,偏正短语....
        col_index_num:形参功能性 描述
        range_lookup:形参功能性 描述

        大家看了还是会觉得紊乱,惭愧。归纳一下,形参主干是 range、reference或array、vector的我这里称它们
为形参类型描述,这里range、reference是的要求是单元格区域或引用,这个要求比array、vector要严格多了,所以很
多初学时感觉很亲切的函数,在以后学数组公式时会发觉其参数限定是太死板了。我自己揣摩,这些函数可能就
是为初学函数的同学配置的,他们的优点也很鲜明,使用简单。

        这里讲玄机了,功能性描述的参数不要求是单元格引用的,所以不会带来参数类型限制造成的麻烦,更重要的是以后可以通过该参数的数组化来实现函数的数组应用。        形参为类型描述的,且主干词为range、reference的就要求参数属性是单元格引用了,于是就不能使用纯数组(这里只是却别于属性为单元格区域的特殊数组),在数组公式应用时会有很大限制。

        看个例子:SUMIF,COUNTIF
        先感叹一下,本台电脑Snagit不能用,实在烦心,先文字表达,上附件,有空换台电脑再不上。        
        比如在A1:A10单元格中依次输入了数字1-10,然后写了一个条件计数的公式:=COUNTIF(A1:A10,">5"),结果正
确,返回5,但如果你尝试:=countif({1;2;3;4;5;6;7;8;9;10},">5"),想想应该也对吧,但EXCEL就会报错,这个时候你
就很快就会意识到可能第一参数直接写这样的 常数数组 是不对的。(这当然是得益于归一化原则的好处,就这里一个地方不同,人家用单元格地址是对的,你用常数数组不对,那就是常数数组不对了)。而这里的根源就是COUNTIF的第一参数是要求range的。

        这个时候可能有朋友会说,不错不错,但这样的错误一般不会去犯。恩,这是最直接的情况,当然很少回去犯,即使犯了也很快会意识到错误所在。但完成一个任务,函数经常是像积木一样灵活组合的。就是说,那个常数数组你是不会直接去用,但如果嵌套时,COUNTIF的第一参数是由其他函数的返回值充当的,这个时候这个错误就具有隐秘性了,不太容易发现。

        如:我们使用嵌套,依然是条件计数:=COUNTIF(OFFSET(A1,,,10,),">5"),这里OFFSET函数返回的是一个单元格区域引用,所以结果正确。(OFFSET如果不熟悉,那么建议使用前文介绍“自学函数”一文自我修炼一下,这个函数很灵活,在初级阶段你回爱上他的,呵呵)

        另一个公式: =countif(match(A1:A10,A1:A10,0),">5"),这里MATCH函数返回结果作为COUNTIF的第一参
数,但这个返回结果的属性是纯数组,没有单元格引用的属性,所以报错。

        在这个情况下要迅速扎到出错根源相对就难了,需要一定的积累。所以,我觉得通过本节大家多留心,知道有这么回事,那么出现此类错误时可能就会想到了,那就会大大节省你的时间。

        本节就是留心留意函数参数类型,重点关注range、reference的参数类型,这些是有限制的。爱她,更要了解她,强迫她做他不能做的事情显然是要搞僵的,呵呵。
         另外,本节提到的 归一性 法则很有用,尤其在纠错、统计分析某些规律的时候

==========================================================================================
续:
         形参类型为array(数组)、vector(向量,其实就是一维的数组,就是说也是数组)就比较灵活了,用单元格区域引用可以,用常数数组可以,用数组公式传递的内存数组也可以,这就大大的加强了这类函数的功能。因为函数要实现某种功能主要还是要组合运用的,要实现复杂的功能的更是数组来数组去的,因此参数是否能接受内存数组将大大影响这个函数在数组公式应用中的地位的。
         =vlookup(lookup_value,table_array,col_index_num,range_lookup),这里的table_array就比较好伺候了,大家可以看下图:



               上图表达的是根据 姓名 返回 学号,这里函数有点吃不透不要紧,这里的重点是说array类型的参数比较好招呼,这里用CHOOSE函数返回了一个array,完成的任务是让 姓名 位于第一列。


         功能性描述的参数也不限定非得使用单元格区域。使用功能性的词来描述参数也许正是因为Excel没有必要强调他非得是单元格引用吧。这类参数可以试探性使用常数数组或内存数组以实现数组应用。这话听上去没有什么,但看一下你会比较有感觉的。

         

                本贴续的部分两个公式都比较难,有兴致的同学可以揣摩一下,如果有点领悟也算是数组公式有点启蒙了,呵呵。

         本贴续的部分两个公式都比较难,有兴致的同学可以揣摩一下,如果有点领悟也算是数组公式有点启蒙了,呵呵。

         上面列了一个VLOOKUP函数的语法结构提示,也许有同学会感叹“胡版好耐心” ,“一个一个码字,而且丝毫不差,佩服”。其实这里有一个快捷方式将这个 函数提示公式 直接复制到单元格的。具体过程就是在调出 函数提示工具 时按 <Ctrl+Shift+Enter>组合键,如下图。上眼,呵呵



上图中应改为<Ctrl+SHIFT+A>组合键

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

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

参数类型.rar

9.4 KB, 下载次数: 2307

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-19 01:51 , Processed in 0.038069 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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