ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] IF({1} 与 IF(1 的区别

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-6 16:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 wangg913 于 2012-12-6 16:55 编辑

没有大括号,IF返回的是引用。
有大括号,IF返回的是真值。

引用和引用区真值是有区别的,引用是地址,不是真值。

外包N后:
引用只返回第一个单元格的数据转化的数值。


评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-6 16:54 | 显示全部楼层
fatefree 发表于 2012-12-6 16:36
if(1 的1的最终含义是告诉程序我这个是TRUE值,你必须返回后面对应的代码
IF{1}是告诉程序,1代表一个数组 ...

IF(1,  只是指向一个区域(一个数组),
IF({1} ,相当于 IF({1;2;3;4;………… ,它会自动扩展到与后面区域中的单元格量相同量的数组,从而产生多维数组(注意,这里不是降维,而是升维)。
N 作用只是把每维中的第一个值 数值化(文本归0)。(这里的N 起到降维作用)。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-12-6 18:03 | 显示全部楼层
这个在前两期我做数组班作业是也察觉到了,其实帮助也有提到只是我没理解透彻而已
如果函数 IF 的参数包含数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。),则在执行 IF 语句时,数组中的每一个元素都将计算。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-7 02:32 | 显示全部楼层
IF(1,  与 IF({1}
先讲 IF(1,A1:A7)
    小马是人口统计员,他接到一个任务是统计朝阳小区的人口数。
    小马接到的任务交代是:统计小区居委会的人口。就如 IF(1,
    这位小马办事决不马虎,带上登记册马不停蹄就前往这小区统计来了。
    第一排 第一楼 就是居委会办公室,办公室有办公人员老李、大刘、小张、小王四人,小马只登记了这四人,就回去交差了。
          (小马虽然没有统计全小区的人口数,但它还是以指意办事决不变样)

再讲 IF({1}
    一个小区怎第会只有四个人呢?
   麦部长意识到指令下达有误,重新下任务:
  统计朝阳小区居民(包括居住与办公的人员)的人口数。 就如 IF({1},
   小马办事真是一丝不挂(应该叫一丝不苟),从第一幢一直到最后一幢、一家一户上门作了登记,手脚真麻利,一到一秒种(电脑速度就是快)就统计好了。
   麦部长看到一份共有911人数、并且资料登记祥细的资料,连夸带骂地说道:小马办事真不懒啊,就是死板一点。(嘿嘿,电脑就是这个得性啊)

    分析 IF (1,    这个1,就是引导标志,  它指定后面只是一个数据区值 ,不是数组,只是指向这个区域而已。
     
    IF({1},  这个 {1} ,是告诉公式,后面跟随的是个多维数组 ,数组的个数是由后面区域的单元格决定的。从而它起到了从单一区域扩展成多维数组的作用。

     例如 =IF({1},5)     虽然后面只是一个5,  我们通过抹黑公式不难发现,这个5 ,就是一个数组, 结果是 {5} .
     
   为什么 IF(ROW(1:7),A1:A7)  会等同于 IF({1},A1:A7)  呢?
    因为真值是不分大小的(除0以外) ,  因为函数中的真值定义是: 不等于0的任何数.
  所以有 =IF({1}  =IF({2}  =IF({3} …………  =IF({7}  。  我们把它简化写成 =IF({1} 。
   那么,IF({1}  后面跟随多少个数组呢 ? 电脑这点从不含糊,它会从左至右,从上到下搜寻一遍,自然就等同于后面数据区域的单元格数了。



  
   

TA的精华主题

TA的得分主题

发表于 2012-12-7 13:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-12-7 13:29 | 显示全部楼层
本帖最后由 zhouxiao 于 2012-12-7 13:30 编辑

老师,那平常会使用到的IF({1,0})是不是指公式后面返回的数组中,true值返回的是原值,false值以零替代?
好像没有看到过IF({0,1})这样的写法,可以这样写嘛?

点评

可以IF({0,1}),后面两列引用区域的顺序,颠倒一下就可以  发表于 2014-1-22 11:20

TA的精华主题

TA的得分主题

发表于 2012-12-7 15:13 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-7 15:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhouxiao 发表于 2012-12-7 13:29
老师,那平常会使用到的IF({1,0})是不是指公式后面返回的数组中,true值返回的是原值,false值以零替代?
好像 ...

IF({0,1})
这样是可以写的
如 =VLOOKUP(D2,IF({0,1},A:A,B:B),2,) 从第2列反查到第1列。

Book12.rar

3.27 KB, 下载次数: 66

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-12-7 17:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-12-7 17:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看了老师的帖子,想了想这个问题,那么公式IF({0,1},A1:A10,B1:B10)和IF({1,0},B1:B10,A1:A10)其实表的就是一个意思?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-22 15:52 , Processed in 0.042488 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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