ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 为piny发现的INDEX+N+IF用法推波助澜(胡剑开课了...)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-9 00:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
胡剑0227 发表于 2013-5-8 12:31
呵呵,经过数组班的学习看一些数组帖会轻松很多,不知道你是否也有这样的体会,呵呵

嗯嗯嗯。以前看的是一头雾水,很难有所领悟和提升,现在思路清晰了很多,理解的东西也比以前多了很多。

TA的精华主题

TA的得分主题

发表于 2014-1-7 18:21 | 显示全部楼层
最爱胡剑和兰兰{:soso_e142:}

TA的精华主题

TA的得分主题

发表于 2015-2-9 11:48 | 显示全部楼层
胡版辛苦了!
      我有一个小问题:为什么index函数外面要套一个if(1,)函数呢?例如=IF(1,INDEX($A$1:$B$10,N(IF(1,{1;2;3})),0)),我试过去掉外面的If函数,但返回的结果只是各个引用元素的第一列,而index函数的列参数为零,意味着是要返回整行的。
       这个问题我不太明白,麻烦胡版了

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-10 05:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 胡剑0227 于 2015-2-10 05:46 编辑
EdwardGrieg 发表于 2015-2-9 11:48
胡版辛苦了!
      我有一个小问题:为什么index函数外面要套一个if(1,)函数呢?例如=IF(1,INDEX($A$1 ...


这里的内容在技术上确实很复杂。

IF在这里的用法我也是实践中体会出来的,实践告诉我IF的这个用法可以为公式 争取 更多的资源(时间,计算需要时间,或其他我还不了解的什么)。

INDEX($A$1:$B$10,N(IF(1,{1;2;3})),0),注意这里INDEX第二参数是一个数组{1;2;3}。

=INDEX(A1:B10,1,0)返回的是一整行,那么INDEX(A1:B10,{1},0)返回的是一个数组,其元素是 一个整行。这里是关键。
好比,OFFSET一般的用法是返回一个区域,如果是数组的用法那么返回的是一组区域,或者说是由区域构成的一个数组。OFFSET的情况你可以用SUBTOTAL函数去测试。
INDEX的这个情况深入的探索在我另一个帖:名字好像是  熬枯寒夜的灯油?我找找看http://club.excelhome.net/thread-987388-1-1.html

INDEX既然返回的是一个  以数组为元素的数组,那么不用IF函数那么按数组机制 第一个元素(这里是数组)就对应第一个单元格,即把一个数组赋值到了一个单元格,其实装不下的,就返回了这个数组的第一个元素。你看上去就是第一列。

TA的精华主题

TA的得分主题

发表于 2015-2-10 14:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
胡剑0227 发表于 2015-2-10 05:44
这里的内容在技术上确实很复杂。

IF在这里的用法我也是实践中体会出来的,实践告诉我IF的这个用法可 ...

首先感谢胡版及时回复,
      如果按照你的理论“INDEX既然返回的是一个  以数组为元素的数组,那么不用IF函数那么按数组机制 第一个元素(这里是数组)就对应第一个单元格,即把一个数组赋值到了一个单元格,其实装不下的,就返回了这个数组的第一个元素。你看上去就是第一列。”来解释的话会有一个很小的瑕疵。
      首先,我认为if(1,A)只是一个引用函数(logical-test为“1”,代表判定结果为真,返回value if true 即“A”),这是前提。
       如果我对if(1,A)的理解是正确的话,那么是否去掉外套的if(1,)函数应该对“A”来说是没有影响的,如果去掉外套if函数之后“装不下”,那我想去掉之前也一定“装不下”。
      但事实上去掉外套函数之前是可以“装下的”。
      还希望版主不吝赐教。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-10 15:26 | 显示全部楼层
本帖最后由 胡剑0227 于 2015-2-10 15:33 编辑
EdwardGrieg 发表于 2015-2-10 14:10
首先感谢胡版及时回复,
      如果按照你的理论“INDEX既然返回的是一个  以数组为元素的数组,那么不用 ...


IF函数在这里的功能和他的基本功能不同,我只是长期根据实践发现碰到类似的发现用IF这个结构可以实现将值分布到单元格中。
这个算是IF函数的特性应用吧,很多函数都有特性,比如  你可以试试下面这个:选A1:A5,然后输入 =IF(RAND(),SUM(ROW())),  三键方式,然后再试试 在A1:A5中 =SUM(ROW()).这里利用了RAND的特性。另外, N+IF也是特性应用,也说不出具体的机制,呵呵。

恩,先把这个问题搁置吧,你去看那个 我上面介绍的帖子就会关注更有趣的东西了

RAND.rar

5.51 KB, 下载次数: 31

TA的精华主题

TA的得分主题

发表于 2015-7-20 14:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习中,多谢      

TA的精华主题

TA的得分主题

发表于 2015-8-8 19:02 | 显示全部楼层
kkitt 发表于 2011-2-14 13:58
胡版真有钻劲,佩服佩服

其实vlookup(n+if)也是同理

N+if的套路大大提升了vlookup的功能啊。赞!

TA的精华主题

TA的得分主题

发表于 2015-8-13 14:52 | 显示全部楼层
很有实用性的好东西!!!

TA的精华主题

TA的得分主题

发表于 2015-9-22 18:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 qigengzier 于 2015-9-22 18:25 编辑
胡剑0227 发表于 2015-2-10 15:26
IF函数在这里的功能和他的基本功能不同,我只是长期根据实践发现碰到类似的发现用IF这个结构可以实现将 ...

这里的三键是Rand的易失性造成的吧 =SUM(ROW())+RAND()*0区域数组也可以达到一样的效果。
反复的比较了INDEX还有其他很多函数下N(IF(1))和N(IF({1}))。发现胡版的理解基本思路是对的,但是还是稍有些地方讲的不是太明白。
我感觉应该还是从别的方向,摸到IF的运行机制。去系统解释比较好
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 17:46 , Processed in 0.047707 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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