![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
假设判断从A1单元格开始,可以用IF函数写公式:=IF(A1<>0,B1),然后下拉填充即可。
IF函数用途:执行逻辑判断,它可以根据逻辑表达式的真假,返回不同的结果,从而执行数值或公式的条件检测任务。
语法:IF(logical_test,value_if_true,value_if_false)。
参数:Logical_test 计算结果为TRUE 或FALSE 的任何数值或表达式;Value_if_true 是Logical_test 为TRUE 时函数的返回值,如果logical_test 为TRUE 并且省略了value_if_true,则返回TRUE。而且Value_if_true 可以是一个表达式;Value_if_false 是Logical_test 为FALSE 时函数的返回值。如果logical_test 为FALSE 并且省略value_if_false,则返回FALSE。Value_if_false 也可以是一个表达式。
实例:公式“=IF(C2>=85,"A",IF(C2>=70,"B",IF(C2>=60,"C",IF(C2<60,"D"))))”,其中第二个IF 语句同时也是第一个IF 语句的参数。同样,第三个IF 语句是第二个IF 语句的参数,以此类推。例如,若第一个逻辑判断表达式C2>=85 成立,则D2 单元格被赋值“A”;如果第一个逻辑判断表达式C2>=85 不成立,则计算第二个IF 语句“IF(C2>=70”;以此类推直至计算结束,该函数广泛用于需要进行逻辑判断的场合。
按Ctrl+Shift+Enter 结束公式
大神,求问small(if($A$1:$A$1000>0,row($A$1:$A$1000),4^8),row(A1)))&""这句什么意思?
数组公式,
数组公式 的最大特点 就是将 一组数 一起处理
if($A$1:$A$1000>0,row($A$1:$A$1000),4^8)
如果A1:A1000 >0 ,返回A1:A1000的行标, 否则返回 4^8次
按照你的 例子 0 1 3 0 5 0 7
会返回例如 65536 2 3 65536 5 65536 7 8 9 65536 。。。。 16.。。 65536
Small( 65536 2 3 65536 5 65536 7 8 9 65536 ,row(A1)) 提取 65536 2 3 65536 5 65536 7 8 9 65536 第1 小的, 下拉 提取第2小的, 。。。。。。第N小的,
最后肯定是 65536 , 就是B列 第65536 行,为空, &"" 确保让它不返回0 , 返回空
=INDEX(B$2:B$100,SMALL(IF(A$2:A$100<>0,ROW($1:$99),9^9),ROW(A1)))
数组公式,按CTRL+SHIFT+回车,下拉。
大神,这句什么意思?求解释
SMALL(IF(A$2:A$1000,ROW($1:$99),9^9),ROW(A1)))
IF(A$2:A$1000,ROW($1:$99),9^9),如果A$2:A$1000,就是ROW($1:$99),否则为9^9(就是9的9次方,一个比较大的数),这样就得到一个符合条件的数组,符合条件的是行号,不符合的是9^9;
用SMALL找到第ROW(A1)小的行号;
最后用INDEX得到行号对应的数据(B$2:B$100中)。
if(条件,条件为真返回数据,条件为假返回数据)