马黑黑 发表于 2021-6-20 11:57

复合条件用一个if就可以了吧

敲黑板:这里的“复合”不是离婚后的复合,不是离婚后的复合,不是离婚后的复合!

这里的复合条件,说的是多重条件,就是多个条件都符合的话就酱紫、不符合的就娘子。下面还是举栗子说明,我们拿快乐水吧发放奖金来说事:

如果姜海涛小盆友发帖总数大于等于1000,且发主楼数大于等于100,且当月发帖数大于等于200,且当月发主楼帖数大于等于20,辣么的话,姜小盆友就能拿到1W的奖金,否则的话给个安慰奖100¥(红坛行长是不是有点抠门{:5_117:})。

捋一下问题:4个条件,同时满足的拿1W,任意一个不满足的拿100¥。

领导交给的任务咱们不敢怠慢,水吧老年幼稚园院长兼红坛总助理小辣椒拿来Excel格式的统计数据,马黑黑老盆友赶紧给出解决方案——

就用一个 if() 函数:if(条件, 成立返回值, 不成立返回值)

if(发帖总数>=1000, 10000, 100)
if(主楼帖数>=100,10000,100)
if(当月发帖数>=200,10000,100)
if(当月主楼帖数>=20,10000,100)

以上四个 if 语句单独使用,意思是每满足一个条件都能拿1W,那总共是4W,否则,拿100,那总共是400,好大气的是不是!不过那样的话水吧的花旗银行要倒闭滴,红坛行长是一万个不会答应滴。所以不能用四个 if 只能用一个 if 了。

在二进制世界里,有一个数值叫逻辑值,就是真和假,True 和 False,用数字表示,是 1 和 0,是 1 的话为真,是 0 的话为假。辣么呢,我们只需要处理 1 和 0 就行了,具体说吧,有 4 个单一条件,它们成立与否的结果不是 0 就是 1,将它们相乘,得到的结果也就是不是 0 就是 1,是0的话则至少有一个条件不符合,是 1 的话所有条件都符合。看下面相乘的式子体会一下这个简单的小学数学原理:

1*1*1*1=1
0*1*1*1=0
0*0*1*1=0
0*0*0*1=0
0*0*0*0=0

四个逻辑值相乘的式子转换成Excel的计算式子:(C3>=1000)*(D3>=100)*(E3>=200)*(F3>=20)

其中,C3、D3、E3、F3是单元格名称,分别代表姜小盆友的发帖总数、主楼帖数、当月总帖数、当月主楼帖数。

以上式子套上 if() 函数就大功告成:

if((C3>=1000)*(D3>=100)*(E3>=200)*(F3>=20), 10000,100)

效果如下图——


马黑黑 发表于 2021-6-20 12:02

快乐水吧还是快乐的,每个人都有奖金,这叫美美大同

加林森 发表于 2021-6-20 12:05

黑黑厉害,公然向红坛主要钱了哇!{:4_170:}

大猫咪 发表于 2021-6-20 12:10

这样算,貌似红影差俺不少钱{:4_170:}

马黑黑 发表于 2021-6-20 12:31

大猫咪 发表于 2021-6-20 12:10
这样算,貌似红影差俺不少钱

老板都有克扣奖金的习惯{:5_106:}

马黑黑 发表于 2021-6-20 12:31

加林森 发表于 2021-6-20 12:05
黑黑厉害,公然向红坛主要钱了哇!

没有啊,哪有俺的名字

大猫咪 发表于 2021-6-20 12:32

马黑黑 发表于 2021-6-20 12:31
老板都有克扣奖金的习惯

就是就是,农民工不容易 {:4_170:}

马黑黑 发表于 2021-6-20 12:32

大猫咪 发表于 2021-6-20 12:32
就是就是,农民工不容易

现在不许叫农民工了,叫打工人

大猫咪 发表于 2021-6-20 12:34

马黑黑 发表于 2021-6-20 12:32
现在不许叫农民工了,叫打工人

哈哈   打工人   老板不许打白条{:4_189:}

马黑黑 发表于 2021-6-20 12:34

大猫咪 发表于 2021-6-20 12:34
哈哈   打工人   老板不许打白条

不许打白条就打工人{:5_106:}

大猫咪 发表于 2021-6-20 12:35

马黑黑 发表于 2021-6-20 12:34
不许打白条就打工人

{:4_172:}得要回来

马黑黑 发表于 2021-6-20 12:37

大猫咪 发表于 2021-6-20 12:35
得要回来

都赌没了么

大猫咪 发表于 2021-6-20 12:41

马黑黑 发表于 2021-6-20 12:37
都赌没了么

差不多,还得給小九颁奖{:4_170:}

红影 发表于 2021-6-20 13:28

大猫咪 发表于 2021-6-20 12:10
这样算,貌似红影差俺不少钱

哈哈,猫猫说的太对了,我都觉得我自己也应该让银行补我钱钱呢{:4_173:}

大猫咪 发表于 2021-6-20 13:29

红影 发表于 2021-6-20 13:28
哈哈,猫猫说的太对了,我都觉得我自己也应该让银行补我钱钱呢

是啊,打工不容易,应该补{:4_170:}

红影 发表于 2021-6-20 13:32

这个太好了,原来并列条件可以这样解决。
再请教一下,后面的1000,100可以否使用前面运算后的结果。比如if((C3>=1000)*(D3>=100)*(E3>=200)*(F3>=20), D3+1000,E3+100)

红影 发表于 2021-6-20 13:35

黑黑真棒,有了这个判断语句,Excel也可以编很多实用的运算小程序呢。{:4_204:}

加林森 发表于 2021-6-20 14:24

马黑黑 发表于 2021-6-20 12:31
没有啊,哪有俺的名字

玩心眼啊{:4_172:}

马黑黑 发表于 2021-6-20 17:22

那是必须的

马黑黑 发表于 2021-6-20 17:23

红影 发表于 2021-6-20 13:35
黑黑真棒,有了这个判断语句,Excel也可以编很多实用的运算小程序呢。

那是可以的
页: [1] 2
查看完整版本: 复合条件用一个if就可以了吧