时间:2020-02-10  来源:百度经验  作者:shaowu459  阅读:6

Excel在单个单元格中可以用AND()和OR()函数分别表示同时满足多个条件或满足一个或任意若干个条件。但是在数组公式中如果用AND()或者OR()函数判断多行多列数据是否符合条件会出错,因为这两个函数只能返回一个TRUE或者FALSE的结果。

我们先来看满足多条件的例子。如下图,要求A列姓名为“A”并且B列数量大于150的项目对应的数量合计,也就是说同时满足这两个条件。

在任意单元格输入公式:=SUMPRODUCT((A2:A7="A")*(B2:B7>150)*B2:B7)回车后即可得到如下图的计算结果。

在上面的例子中,我们用“*”,也就是乘号代表了同时满足两个条件。(A2:A7="A")*(B2:B7>150),其中(A2:A7="A")和(B2:B7>150)分别判断两个条件是否成立,如果成立则返回TRUE,反之返回FALSE。而在两个返回数组相乘的时候,TRUE会相当于1,FALSE相当于0,也就是只有两个数组中同样位置的返回值都是TRUE,结果才返回1,否则返回0。然后再分别乘以B2:B7就使同时满足两个条件的1乘以B2:B7,不满足的0也乘积B2:B7。然后将返回的数组求和即可。

在上面的例子中,我们用“*”,也就是乘号代表了同时满足两个条件。(A2:A7="A")*(B2:B7>150),其中(A2:A7="A")和(B2:B7>150)分别判断两个条件是否成立,如果成立则返回TRUE,反之返回FALSE。而在两个返回数组相乘的时候,TRUE会相当于1,FALSE相当于0,也就是只有两个数组中同样位置的返回值都是TRUE,结果才返回1,否则返回0。然后再分别乘以B2:B7就使同时满足两个条件的1乘以B2:B7,不满足的0也乘积B2:B7。然后将返回的数组求和即可。

下面再来看一下如何在数组公式中表达“或”的关系。如下图,我们求A列姓名为“B”或者“C”对应的B列数量合计。这个可以用SUMIFS或者SUMIF等函数完成,但是本例主要用SUM和IF函数完成来体会IF第一参数满足“或者”条件的用法。

在任意单元格输入:=SUM(IF((A2:A7="B")+(A2:A7="C"),B2:B7))左手按住Ctrl+Shift,右手按Enter数组方式运行公式即可得到结果。

上面的例子用(A2:A7="B")+(A2:A7="C")来表示满足“B”或“C”其中一个条件就计算B列数量合计。原理是这样的:(A2:A7="B")返回TRUE或者FALSE,(A2:A7="C")同样返回TRUE或者FALSE的数组。在参与加法运算时TRUE相当于1,FALSE相当于0。只要两个条件中有一个返回结果是TRUE,相加返回的数组结果就是1,两个都不满足,返回数组元素是0。然后利用IF函数第一参数非0即返回第二参数,是0就返回第三参数的特性将符合条件的B2:B7中数据记录下来,不满足条件的返回FALSE。这样用SUM求返回数组中的数字合计就是想要的结果了。

上面的例子用(A2:A7="B")+(A2:A7="C")来表示满足“B”或“C”其中一个条件就计算B列数量合计。原理是这样的:(A2:A7="B")返回TRUE或者FALSE,(A2:A7="C")同样返回TRUE或者FALSE的数组。在参与加法运算时TRUE相当于1,FALSE相当于0。只要两个条件中有一个返回结果是TRUE,相加返回的数组结果就是1,两个都不满足,返回数组元素是0。然后利用IF函数第一参数非0即返回第二参数,是0就返回第三参数的特性将符合条件的B2:B7中数据记录下来,不满足条件的返回FALSE。这样用SUM求返回数组中的数字合计就是想要的结果了。

Top