EXCEL如果A列不等于0,则返回相应B列的值

详情如图,想要得到的结果是D列的内容,请问应该用哪个公式,如何实现?

假设判断从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”;以此类推直至计算结束,该函数广泛用于需要进行逻辑判断的场合。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-17
=index(B:B,small(if($A$1:$A$1000>0,row($A$1:$A$1000),4^8),row(A1)))&""
按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 , 返回空

本回答被提问者采纳
第2个回答  2014-12-17
D2公式:
=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中)。

本回答被网友采纳
第3个回答  2014-12-17
公式在C1中输入=IF(A1<>"0',b1,"") 下拉公式,ok。
第4个回答  2014-12-17
=IF(A1=0,,B1)
if(条件,条件为真返回数据,条件为假返回数据)

EXCEL如果A列不等于0,则返回相应B列的值
而且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")))...

excel 中如果 一个行中一个单元格值不为0 怎提取该行中另一个单元格的...
例如如果A1不等于0,则B1=C1,否则=D1,则在B1中输入 =if(A1<>0,C1,D1)

EXCEL中如何一个单元格的数值不等于0,则另一个单元格就等于其他单元格的...
=if(A<>0,C,"")

excel中,如果A列不等于交流输入停电,返回B列。用什么函数?
C2=if(countif(a2,"*交流输入停电*"),"",a2),公式下拉自动填充就可以了

各位高手:excel函数 如果一列为空,如何取对应另一列的值
公式为:=INDEX(A:A,SMALL(IF(B:B="",ROW(B:B),4^8),ROW(A1)))&""数组公式,输完后按ctrl+shift+enter产生花括号即可。如图所示:

Excel如何实现当A列不为空时,依次返回B列中不为空的值,谢谢
我企图用这个公示实现,=IF(A1<>"", IFERROR(INDEX(B1:B88,SMALL(IF(B1:B88<>"",ROW(B1:B88)),ROW(B1:B88))),""),0),但显示spill溢出 经测试,并无异常。环境:win10,EXCEL2007,EXCEL2016。可以自查一下单元格格式的设置,或重建一个新工作表再测试。

EXCEL B列等于A列中不为0的数
B1数组公式,输入完成后不要直接回车,要按三键 CTRL+SHIFT+回车 下拉。=INDEX(A:A,SMALL(IF(A$1:A$999<>0,ROW($1:$999),4^8),ROW(A1)))&""

excel 当A列的值不等于0时,返回对应的C列的值
说两种最简单的方法:1、在D1输入:=IF(A1<>0,ABS(C1),""),然后往下填充就可以了。2、在D1输入:=IF(ABS(B1)=ABS(C1),"",ABS(C1)),然后往下填充就可以了。如果只要C的值,那把上面公式中ABS(C1)的ABS去掉 :=IF(A1<>0,C1,""):=IF(ABS(B1)=ABS(C1),"",C1)...

excel里如何搜索每行不等于0的一个列,并输出此列的名称
数组三键 F2下拉 =OFFSET(B$1,,MATCH(1=1,C2:E2<>"",))

Excel中求函数方法解决:如果A列中某格符合条件,则返回对应B列中的值
=INDEX(B2:B5,MATCH(MIN(A2:A5),A2:A5,0))

相似回答