bigdecimal判断等于0_条件判断,只会IF函数还不够

昨天有个读者问到我一个条件判断的问题,问题如下: C列等于A列×B列,当C列是负数时,C列等于0。 C列等于0时,D列等于A列×B列,其他情况等于0。

2c66a693-b41a-eb11-8da9-e4434bdf6706.png

很明显,这是一个典型的条件判断题目。 用IF函数就可以实现。 01 常规公式 IF函数是Excel函数入门的最简单的基本函数,利用函数向导建立的IF函数公式逻辑非常清晰。 以C2单元格设置的公式为例:

2e66a693-b41a-eb11-8da9-e4434bdf6706.png

对照上面读者朋友的规则要求,我们可以很轻易的设置C列和D列的公式,分别如下:
C2=IF(A2*B2<0,0,A2*B2) D2=IF(C2=0,A2*B2,0)
02 进阶公式 上面的公式初学者结合理解写出IF函数的公式问题就已经解决了,不过我们建议读者朋友可以更加深入一步。 我们知道类似于IF函数均归类在逻辑函数分类里。

3066a693-b41a-eb11-8da9-e4434bdf6706.png

但其实,不用逻辑函数也能实现上面的功能,而且有可能写出更简洁的公式。

我们观察这位读者的规则要求,其实C、D列中的结果完全都是依据A列×B列,如果A列×B列为非负数,则结果填入C列,如果A列×B列为非正数,则结果填入D列。

我们在整理归纳出上面的规律之后,就可以据此设置更巧妙的公式。

以C2为列:
=MAX(A2*B2,0)
这里利用MAX函数返回最大值的特点,省去了反复输入的不必要麻烦。 D2公式为:
=MIN(A2*B2,0)
两种公式长度对比如下:

3466a693-b41a-eb11-8da9-e4434bdf6706.jpeg

使用MAX和MIN函数更加简洁清晰。 通过对比我们知道原来MAX和MIN函数还可以用来进行条件判断,并且用的巧还可以简化我们的公式。 03 对于函数公式的思考

上面的分享只是作为抛砖引玉,作为另外一种启发思路供大家多思考。

那么有的读者朋友可能会问,Excel内置了400多个函数公式,怎么才能做到有的放矢的运用这些函数呢?

其实谁也不可能记住这么多的公式,我们要做的应该是针对问题理清思路,多思考,多总结。 想起了小时候学的一篇课文中的回答:

无他,唯手熟尔

希望大家在工作中遇到类似的问题也能够多思考多总结,提高效率,杜绝无效工作~

图文制作:FunExcel

原载公众号:Excel表哥

Java中可以使用BigDecimal类来将Object类型转换为BigDecimal类型。通过判断Object的类型,我们可以采用不同的方式进行转换。 以下是一个示例代码,展示了如何将Object类型转换为BigDecimal类型: ```java public static BigDecimal getBigDecimal(Object value) { BigDecimal ret = null; if (value != null) { if (value instanceof BigDecimal) { ret = (BigDecimal) value; } else if (value instanceof String) { ret = new BigDecimal((String) value); } else if (value instanceof BigInteger) { ret = new BigDecimal((BigInteger) value); } else if (value instanceof Number) { ret = new BigDecimal(((Number) value).doubleValue()); } else { throw new ClassCastException("Not possible to coerce [" + value + "] from class " + value.getClass() + " into a BigDecimal."); } } return ret; } ``` 这段代码首先判断传入的value是否为空,然后根据其类型进行相应的转换。如果value是BigDecimal类型,则直接将其转换为BigDecimal。如果是String类型,则使用BigDecimal的构造函数将其转换为BigDecimal。如果是BigInteger类型,则同样使用BigDecimal的构造函数将其转换为BigDecimal。如果是Number类型,则将其转换为double类型,并使用BigDecimal的构造函数将其转换为BigDecimal。 对于其他类型的Object,将会抛出一个ClassCastException异常,提示无法将其转换为BigDecimal类型。 这个方法可以帮助我们将Object类型转换为BigDecimal类型。您可以根据需要调用该方法来进行类型转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值