水区大牛多,excel高级功能求助

  • f
    foxhounds
    两个值 a b ,a b 经常变化,可能情况<0,0,>0。

    现在需要输入a b值,得到一个2个返回值 x y

    规则: a b 都<0时 x=|a+b| y=0
    a<0 b>0 时 x=|a| y=b
    a>0 b<0时 x=|b| y=a

    请问该调用什么函数? if函数是不是只能对一个值进行逻辑判断?

    本帖最后由 foxhounds 于 2016-7-5 10:38 通过手机版编辑
  • d
    dreamboyg
    ab都大于0呢?
  • 一天就是一日
    X =IF(A1<0,IF(B1<0,ABS(A1+B1),ABS(A1)),IF(B1<0,ABS(B1),"未知"))
    Y =IF(A1<0,IF(B1<0,0,B1),IF(B1<0,A1,"未知"))

    大致思路,具体还得你自己调
    未知是 ab都大于0的情况
    另外你的描述中没有等于0的情况怎么处理。
  • f
    foxhounds
    a b都> 0 x=0 y=a+b
  • 女武神
    几个条件几个IF呗 excel就这样了 最恶心的是函数格式不好 并且不能加注释 时间长了会看不懂 ﹃_﹃〣
  • f
    foxhounds
    同时用多个if 就行了吗?
  • 一天就是一日
    多个if可以嵌套使用。
  • i
    icybamboo
    套用IF就行了

    想用注释的写VBA
  • f
    foxhounds
    原来如此,谢谢大神们。

    注释没关系,可以直接加个批注。
  • t
    tenkawaakito
    x只取小于0的和,y只取大于0的和,不知道是否理解错误,但楼主举例中没有包含等于0的情况



    C2=ABS(SUM((A2:B2<0)*(A2:B2)))
    D2=ABS(SUM((A2:B2>0)*(A2:B2)))
    都是数组公式,ctrl+shift+enter三键结束
  • d
    dorcas
    X=INT(SIGN(A)/2)*A+INT(SIGN(B)/2)*B
    Y=INT((SIGN(A)+1)/2)*A+INT((SIGN(B)+1)/2)*B
  • f
    foxhounds
    x只取小于0的和,y只取大于0的和。
    描述太对了。

    我进而又想到了sumif 函数,发现这才是最好的解决方案。