ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-12-7 19:41 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
经常在公式中看到if这样的用法,举个例子,比如第一个参数就是通过其他公式得出的一组数,第二个参数是ROW(1:10),然后还能够返回相对应的行数.
我不太理解,按道理来说第一个参数不应该是一个条件吗?难道第一个参数有其他的特殊用法吗?

TA的精华主题

TA的得分主题

发表于 2017-12-7 19:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
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 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
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

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

本版积分规则

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

GMT+8, 2024-4-27 06:06 , Processed in 0.043996 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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