ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
高效办公必会的Office实战技巧 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! 国内首部Excel函数公式学习大典 职场充电黑科技, Office微视频教程 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 突破Excel限制,用活字格提高效率 12门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 77|回复: 6

请教一个关于if函数的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-12-7 19:41 | 显示全部楼层 |阅读模式
经常在公式中看到if这样的用法,举个例子,比如第一个参数就是通过其他公式得出的一组数,第二个参数是ROW(1:10),然后还能够返回相对应的行数.
我不太理解,按道理来说第一个参数不应该是一个条件吗?难道第一个参数有其他的特殊用法吗?

TA的精华主题

TA的得分主题

发表于 2017-12-7 19:54 | 显示全部楼层
if第一参数可以是一个数组,
"比如第一个参数就是通过其他公式得出的一组数,第二个参数是ROW(1:10)"
这就是if一个典型用法,
基本思路就是去遍历第一参数的逻辑判断数组,对其中每一个选项进行逻辑选择,做出相应的操作。
万金油套路:=index(,small(if(,row()),))
index确定返回区域
small通过改变第二参数返回所有符合条件的值
if用来判断是否符合与设定的条件
small+if可以想象成挑出符合要求的对象然后按照一定的顺序站成一队供index输出

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-7 20:03 | 显示全部楼层
龙城飞将III 发表于 2017-12-7 19:54
if第一参数可以是一个数组,
"比如第一个参数就是通过其他公式得出的一组数,第二个参数是ROW(1:10)"
这 ...

谢谢,那为什么第二个参数是row的时候会得到相应的行值,请问它是如何对数组中的元素进行判断的?

TA的精华主题

TA的得分主题

发表于 2017-12-7 20:12 | 显示全部楼层
wj688886 发表于 2017-12-7 20:03
谢谢,那为什么第二个参数是row的时候会得到相应的行值,请问它是如何对数组中的元素进行判断的?

举个例子:比如a列是5个数,3,8,9,2,7
我们要返回其中大于5的数
我们思路是这样子,找到大于5的数,记录行号,按行号从小到大的顺序返回数字
第一步就是判断是否大于5,如果大于5,返回行号
公式 =if(A1:A5>5,row(A1:A5))
这个公式Excel在处理的时候,相当于进行了5次运算
if(A1>5,row(A1))                           False                    False
if(A2>5,row(A2))                           True                    2
if(A3>5,row(A3))                           True                    3
if(A4>5,row(A4))                           False                    False
if(A5>5,row(A5))                           True                    5
但是其结果是一次性返回的
所以你按F9会看到{False;2;3;False;5}

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-7 20:19 | 显示全部楼层
龙城飞将III 发表于 2017-12-7 20:12
举个例子:比如a列是5个数,3,8,9,2,7
我们要返回其中大于5的数
我们思路是这样子,找到大于5的数,记 ...

可能我没表达清楚,举个例子吧,比如IF({0;6;6;4;1;1;0;0;0;0},ROW(1:10),0),返回的是{0;2;3;4;5;6;0;0;0;0},那么请问它是如何对第一个参数进行判断的?

TA的精华主题

TA的得分主题

发表于 2017-12-7 20:25 | 显示全部楼层
wj688886 发表于 2017-12-7 20:19
可能我没表达清楚,举个例子吧,比如IF({0;6;6;4;1;1;0;0;0;0},ROW(1:10),0),返回的是{0;2;3;4;5;6;0;0;0 ...

第一参数 :{0;6;6;4;1;1;0;0;0;0}
0认为是False,非0数字认为是True

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-7 20:28 | 显示全部楼层
龙城飞将III 发表于 2017-12-7 20:25
第一参数 :{0;6;6;4;1;1;0;0;0;0}
0认为是False,非0数字认为是True

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

本版积分规则

关闭

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

关注官方微信,每天坐享新鲜教程

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

GMT+8, 2017-12-17 10:20 , Processed in 1.084176 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Wooffice Inc.

   

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

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

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