Excel逻辑运算和数组公式

发布网友 发布时间:2024-12-07 08:13

我来回答

1个回答

热心网友 时间:2024-12-07 09:47

在我之前的如何一文中已经讲到了学习公式的重点,由于引用和函数嵌套并不复杂(注意简单并不代表不重要),主要是难在逻辑思维上,所以这里不再赘述,感兴趣的可看以下内容。

当你深入学习公式时,你会发现很多奇葩的公式,比如:

=VLOOKUP(A1,IF({1,0}, C1:C11,B1:B11),2,0) =SUM((G1:I1<2)*G3:I4)

WTF???????这都是什么鬼?

下面让我们逐一去理解逻辑运算和数组公式

1. 逻辑运算与算术运算

1.1 逻辑值与数字的关系

不只是Excel中,在很多的编程语言中,我们都可以认为FALSE等价于0,TRUE等价于1,0等价于FALSE,非0等价于TRUE。

但是万事总有例外,在VBA中只有位运算,又因为-1的补码是1111 1111 ..., 所以True在数字上就等价于-1了~

1.2 逻辑运算与数算

逻辑运算常用的也就只有AND和OR,我们重温一下他们的规则

AND: 有假则为假

OR: 有真则为真

对于AND,既然有假则为假,那么FALSE等价于0,所以就是有0则为0,好熟悉?????? 0乘以任何数都为0,AND等价于乘法

对于OR,有真则为真,由于TRUE等价于1,所以就是大于0就可以,又因为任何非0的数字都是真,所以,OR等价于加法,那有没有可能加法引发数字溢出,变成0,这里并不会,因为Excel一旦浮点数溢出,就会产生#NUM!错误

AND(A, B, C) = A * B * C OR(A, B, C) = A + B + C

2. 数组公式

一般情况下我们可以认为数组等价于单元格区域。那么什么是数组?

数组就是用大括号包围的一段数据,用逗号分隔列,分号分隔行

其实讲到这里数组已经讲完了~~~

3. 案例

3.1 单价求和

总计==SUM(B2:D2*B5:D7) 单价<3==SUM((B2:D2<3)*B2:D2*B5:D7)

对于B2:D2*B5:D7的结果其实是这样的~

那么(B2:D2<3)*B2:D2*B5:D7就是多了一个{1, 1, 0}

3.2 VLOOKU查询

我们都知道VLOOKUP要求查找列必须在第一列,如果不在怎么办?

其中最难以理解的就是IF({1,0}, D:D,C:C), 那我们简化一下,看看它到底返回什么

至此你应该能够明白,{1, 0}决定了先D2:D12然后拼接上C2:C12的一个整体结果。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com