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-15 19:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:公式基础
学习一下,支持楼主

TA的精华主题

TA的得分主题

发表于 2009-12-15 20:50 | 显示全部楼层

回复 213楼 胡剑0227 的帖子

胡版,你好!我从买了函数的精粹,从原来只懂if到现在3个月后把精粹中的第二部分即各种函数的用法都了解了,自己也常常会动手做题。但是感觉现在有点瓶颈了,主要是感觉比如碰到一个问题,其实掌握住函数的用法是次要的,最主要是有解题思路,我常常会碰到的情况就是,碰到问题稍微复杂点的就感觉无从下手,不知道该用些什么函数,但是一旦看了解题之后感觉恍然大悟,其实有些用的函数也不复杂。所以感觉解题的思路比较关键,但是比如胡版,你在这方面有没有什么经验啊?
     我感觉最近好像进步不大,所以感觉学习有点瓶颈了!
     呵呵!希望胡版能分享下这方面的经验!谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-12-15 22:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
函数公式只是种工具,也算是一种语言吧。要积累思路,一方面向内求,先不要想用什么函数,先想想从原材料到最终的结果我们需要解决那些问题,先把流程设计好。先有计划,然后再去执行这个计划,这样问题被分解了,各个击破,最后将公式组装就可以了。先有思路,后才有公式。另一方面就是向外求,我觉得还是多看那看别人的解题思路,慢慢积累吧。

===========================================================================
当然设计流程和执行流程是一个水乳交融的过程,这就像做几何题,有时真的没有思路,这个时候你就别干瞪眼了,先随意的画画辅助线,可能突然就有灵感了。写公式也是,先尝试一下,多看看有什么特性,慢慢思绪就会有了,这个靠积累的,呵呵。

[ 本帖最后由 胡剑0227 于 2009-12-16 10:48 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-12-16 08:35 | 显示全部楼层
我是按照monvzhilei教我的去做啊,怎么还是V不出来?
这个括号也加了{。。。},还不行呢?

TA的精华主题

TA的得分主题

发表于 2009-12-16 08:40 | 显示全部楼层

回复 218楼 想爱太难 的帖子

这个大括号可不是手工输入的。必须shift+ctrl+enter。同时按下去。

TA的精华主题

TA的得分主题

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

218楼问题

我也同时按了,怎么出不来呢?应当什么情况下按,在编辑栏嘛?要先输入=吗?

TA的精华主题

TA的得分主题

发表于 2009-12-16 09:06 | 显示全部楼层

回复 220楼 想爱太难 的帖子

当处于编辑状态时,同时按,其他的与写一般的公式是一致的

TA的精华主题

TA的得分主题

发表于 2009-12-16 09:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
终于弄好了,感觉又前进一小步~
谢谢大家!

TA的精华主题

TA的得分主题

发表于 2009-12-16 12:04 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-12-16 14:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 胡剑0227 于 2011-8-19 15:46 编辑

玉不琢不成器

        “玉不琢不成器”,这里是指复杂完美的公式不是一蹴而就的,而是不断修改、雕琢出来的。
        初学函数公式时我也感叹:那些函数公式的高手真是太了不起了,这么长的公式可以直接写出来,佩服佩服!但现在我想,除了个别已经成型的函数组合应用外,碰到新问题一般都是一步一步雕琢出来的。这个过程需要活跃的思维、熟练的公式编辑技能,是公式综合编辑能力的体现。
        纯语言描述非常空洞,我们就那一个具体的实例吧,所要完成的任务如下图

所示:


        具体讲就是要把左图转换成三列,第一列为X值,第二列为Y值,第三列X、Y值所对应的数据。要求在H2单元格写入公式,然后向左向下拖拉单元格公式进行填充完成三列。

        写公式,尤其只是为了更好更快的解决问题,随时定义名称是一个很好的习惯,增加可读性便于维护。下面我们来定义几个名称,顺便让大家接触一下名称,不至于后文中提高时过于突兀。
        X:引用地址为$B$1:$F$1;       Y:引用地址为$A$2:$A$10;       DATA:引用地址为$B$2:$F$10;
具体过程如下图所示:


        
        当然,定位名称的方式有多种,这只是其中最通用的一种。如果是03版的,原理也是一样的,菜单入口为“插入”--》“名称”---》“定义命名”。如此定义名称后,就可以直接使用X、Y、DATA来直接指代那些单元格了,编辑公式时更是可以利用F3功能键来快捷准确的录入了。顺便补一个利用F3编辑公式的贴图吧,呵呵。



图中停顿处是按了 F3 ,调出了“粘贴名称”对话框

        好了,回到正题。我们的任务是要完成三列,那么先分解一下,先写第一列


        步骤1        在H2单元格:=INDEX(X,,ROW()-1),值为A,满足要求。然后往下拖拉复制,这个时候马上会发现,H3单元格的值为B,不符合。这个时候很容易想到INDEX函数的第三参数必须重复9次(就是Y数组的个数,ROWS(Y))
。        
        步骤2        修改,H2单元格:=INDEX(X,,(ROW()-1)/ROWS(Y)),这个时候返回显然是错误值,此时马上会发现第三参数小于1(修改时直接添加1),并且也马上会想到不是整数(修改时外套INT),于是再修改。

        步骤3        修改,H2单元格:=INDEX(X,,INT(1+(ROW()-1)/ROWS(Y))),然后再往下拖拉公式,开始都正常,但是在H10单元格时返回值变成了“B”而不是预想的“A”。
        此时,仔细分析,第三参数INT(1+(ROW()-1)/ROWS(Y))=int(1+(10-1)/9)=2,这个时候就是希望在ROW()=10时能等于1,因此也不难想到再修改(将ROW()替换为ROW()-0.5)。

        步骤4        修改,H2单元格公式:=INDEX(X,,INT(1+(ROW()-1-0.5)/ROWS(Y)))

整个编辑过程可以如下图所示,当然啦,实际编辑时没有那么快速的,会有点停顿思考的,呵呵



        其实,大家也看到这里的关键就是抠出INDEX的第三参数,就是表格中DATA对于那个的列。

        这样第一列就算完成了。

        第二列,大家可以根据这个思路尝试一步一步雕琢,预祝大家成功,呵呵。
        最后I2的公式为:
        =INDEX(Y,IF(MOD(ROW()-1,ROWS(Y)),MOD(ROW()-1,ROWS(Y)),ROWS(Y)))

        关键1:他是循环的,于是不难想到用MOD,由于MOD会 出现0,我们把这个出现0时换成ROWS(Y)就行了。

        其实,这里的关键是抠出INDEX的第二个参数,就是表格中DATA对应的那个行。

        第三列,行列都扣出来了,第三列就最简单了。
        最后J2:=INDEX(DATA,IF(MOD(ROW()-1,ROWS(Y)),MOD(ROW()-1,ROWS(Y)),ROWS(Y)),INT(1+(ROW()-1-0.5)/ROWS(Y)))
其中INDEX的第二参数使用了第二列公式中INDEX的第二参数,第三参数使用了第一列公式中INDEX的第三参数。


        完成了吗?也许有同学会问,不是最后要合成一个公式吗?那还不简单,用IF判断所在列,然后填写对应的公式就可以了。这里我再秀一下IF函数,顺便大家再熟悉一下名称定义,引用地址是公式,呵呵。

        将H2中的公式定义为“X公式”。
        步骤1        选中H2单元格,进入编辑状态,复制整个公式。
        步骤2        开启“定义名称”对话框,或者直接进入“名称管理器”对话框,新建名称,名称名称,如“X公式”,然后在“引用地址”文本框中粘贴刚才H2中的公式。

        

        按以上介绍方法依次定义“Y公式”、“DATA公式”。
        然后在H2单元格中输入=IF(COLUMN()=8,X公式,IF(COLUMN()=9,Y公式,DATA公式))
看图


        


============================================================================================
大家不要太看重这个例子本身,这里主要讲函数公式不是很一蹴而就的,是不断修改雕琢的。当然里面有些东西你没怎么接触的话正好熟悉熟悉(比如定义名称什么),这倒是很有用的,呵呵。

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

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

玉不琢不成器.rar

17.95 KB, 下载次数: 1620

玉不琢不成器-IF提高2003.rar

7.67 KB, 下载次数: 1065

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

本版积分规则

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

GMT+8, 2024-12-26 01:24 , Processed in 0.040350 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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