ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 查找函数与引用函数其实是有区分的,INDEX或INDIRECT或OFFSET其实是引用函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-9-20 12:03 | 显示全部楼层 |阅读模式
本帖最后由 lgcmeli 于 2015-9-20 14:23 编辑

在Excel里查找与引用函数是一个大类别,实际上经过大量的事实发现,在这个类别里其实是能够再细分的,起码应该分为查找类函数和“引用”类函数

这里我想特别强调的是引用类函数,我发现这有这么几个函数在很多案例很多函数解法里起到特别的作用:INDEX   INDIRECT  OFFSET ,这3个函数用法相当广泛。

而查找类函数,比如vlookup lookup hlookup等所能起到的作用都是返回一个或多个结果值,并不具备“引用”一个区域的功能。

当然以上是我的一家之言,思索的一些感觉而已。仅供参考。

下面贴些图,看看一个简单案例。

SUMIF函数大家都知道,其第一参数,第三参数只能使用数据源里已经存在的区域,一般不能用什么其他函数比如month、left、vlookup等函数取得一个结果用于这2个参数。但是我们也常在论坛里见到sumif的第1、3参数里,使用indirect函数间接引用或者使用offset函数偏移引用的情况特别多。但其实index函数也可以被sumif接纳的。由此我感觉INDEX   INDIRECT  OFFSET  这些函数应该是同一类函数,所谓的“引用”类函数。
至于在本帖修改前我提到的choose函数似乎也是引用函数,另外其他老师在帖子里回复认为if函数也可以是引用函数。比如本例里,CHOOSE(1,$B$2:$B$12),或者,IF(1,$B$2:$B$12),都可以用在sumif函数的第1或3参数里。经过讨论和学习,我认为choose和if函数应该算不上引用函数,原因在于这个单元格区域$B$2:$B$12直接被用在choose或if函数的某个参数里,直接就返回区域引用了。


1-  这是常规的sumif用法


搜狗截图20150920115611.jpg


2-这是sumif函数第3参数嵌套了offset函数的用法(offset函数里可以嵌套其他函数)

搜狗截图20150920115617.jpg



3-这是sumif函数第3参数嵌套了index函数的用法(index函数里可以嵌套其他函数)

搜狗截图20150920115623.jpg

搜狗截图20150920115632.jpg

搜狗截图20150920120653.jpg


4-这是sumif函数第3参数嵌套了choose函数的用法(choose函数里可以嵌套其他函数),这个choose函数其实不算引用函数,只不过choose起到一个判断选择的意思,跟if(1,$b$2:$b$12)一个意思。具体解释帖子,见gouweicao78  老师的帖子:我对数组与多维引用的认识

搜狗截图20150920115638.jpg



5-这是sumif函数第3参数嵌套了indirect函数的用法(indirect函数里可以嵌套其他函数)

搜狗截图20150920115645.jpg


以上,个人学习的一点点感受与简单思考,没有理论深究只是感受而已。探讨。



评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-20 14:45 | 显示全部楼层
不过if函数和choose函数用在sumif里,作用应该没有其他几个函数indirect、index、offset用在sumif函数里的作用大。

再思考一下,if函数,choose函数(形式是:if(数字,直接引用的区域1,直接引用的区域2) 或 choose(数字,直接引用的区域1,直接引用的区域2,...,直接引用的区域n))不管它到底是不是所谓的标准的引用函数,但是它们返回的结果上往往充当了引用的作用。




TA的精华主题

TA的得分主题

发表于 2015-9-20 12:17 | 显示全部楼层
请教版主:引用的定义是什么?
版主还漏了一个大家都知道的引用函数~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-20 12:38 | 显示全部楼层
象山海鲜 发表于 2015-9-20 12:17
请教版主:引用的定义是什么?
版主还漏了一个大家都知道的引用函数~~

我这里说的是能够和sumif这样函数配合的引用类函数,还有哪个引用函数可以,请指教。

引用的定义,我其实也没有精确的,简单理解就是能够返回对原有区域整体抓取的(区域数组吗),是一个面的概念,而不是返回原有区域里单元格里的数值结果的(这个是点的概念)。

有个例子似乎可以说明这个现象,比如根据员工编号,查询员工照片的应用。这里头就无法使用vlookup函数动态获得图片,而只能用引用类函数indirect,index或者offset等来定义名称后获取照片。

一家之言。

TA的精华主题

TA的得分主题

发表于 2015-9-20 13:01 | 显示全部楼层
lgcmeli 发表于 2015-9-20 12:38
我这里说的是能够和sumif这样函数配合的引用类函数,还有哪个引用函数可以,请指教。

引用的定义,我 ...

感谢帮助,我也查了一大堆,还没找到完整的定义。

还有一个引用函数就是万能的IF,用法和CHOOSE差不多

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-20 13:25 | 显示全部楼层
本帖最后由 lgcmeli 于 2015-9-20 13:34 编辑
象山海鲜 发表于 2015-9-20 13:01
感谢帮助,我也查了一大堆,还没找到完整的定义。

还有一个引用函数就是万能的IF,用法和CHOOSE差不多

IF有这个作用。但是不是查找与引用函数里的。谢谢指点。if在sumif里用,也只是起到一个判断的作用,并不是引用吧。比如这样的=SUMIF($A$2:$A$12,$F2,IF(1,$B$2:$B$12))

if和choose很像,确实是很像。但if按照微软的分类是逻辑类函数。

TA的精华主题

TA的得分主题

发表于 2015-9-20 13:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lgcmeli 发表于 2015-9-20 13:25
IF有这个作用。但是不是查找与引用函数里的。谢谢指点。if在sumif里用,也只是起到一个判断的作用,并不 ...

呵呵,我的想法是函数功能来区分,没有严格意义的所于某类型的函数
    我想微软对于函数类型是以设计函数的的作用区分的
   一个函数可能有很多功能,在一定的情况下使用,他就所于某类函数
   IF是处理逻辑的函数,但他也属引用函数
个人想法

TA的精华主题

TA的得分主题

发表于 2015-9-20 13:51 | 显示全部楼层
本帖最后由 看见星光 于 2015-9-20 13:54 编辑

引用的作用在于标识工作表上的单元格或单元格区域,并指明公式中所使用的数据的位置
这个以前讨论过啊,IF不是引用类函数。然后就是INDEX是比较特别的一个。
很久以前的帖子了:http://club.excelhome.net/thread-494347-1-1.html

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-20 13:55 | 显示全部楼层
看见星光 发表于 2015-9-20 13:51
引用的作用在于标识工作表上的单元格或单元格区域,并指明公式中所使用的数据的位置
这个以前讨论过啊,IF ...

谢谢指点。

TA的精华主题

TA的得分主题

发表于 2015-9-20 13:58 | 显示全部楼层
lgcmeli 发表于 2015-9-20 13:25
IF有这个作用。但是不是查找与引用函数里的。谢谢指点。if在sumif里用,也只是起到一个判断的作用,并不 ...

讨论继续~
if在sumif里用,也只是起到一个判断的作用,并不是引用吧。比如这样的=SUMIF($A$2:$A$12,$F2,IF(1,$B$2:$B$12))
对于这个问题我是这样理解的
假设不是引用那么作为数组值,SUMIF能同意吗?
假设你说的是判断,那么CHOOSE(1,$B$2:$B$12)不也是判断(判断引用位置),如果CHOOSE是引用函数,为什么IF不能算呢?

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-9-20 14:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
象山海鲜 发表于 2015-9-20 13:58
讨论继续~
if在sumif里用,也只是起到一个判断的作用,并不是引用吧。比如这样的=SUMIF($A$2:$A$12,$F2, ...

同意你的观点,if和choose类似,choose是我临时起意加的,前面的回复里 看见星光 老师的提示:“引用的作用在于标识工作表上的单元格或单元格区域,并指明公式中所使用的数据的位置

原话是gouweicao78 老师的说法。

很多年前看过,没深刻记忆,那时候也没看懂。重温发现确实有启发。


ok,聊回来。其实现在结合各位老师的说法,确实choose函数也不能算标准的引用类函数,和if函数的一些用法类似。

那么最严格的最灵活的引用函数,应该目前是这3个:index,indirect,offset。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-26 13:22 , Processed in 0.047578 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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