Excel多行条件(欢迎使用数组或脚本解决scheme)(企业营业额阈值)

我正在编写一份表格,用来计算一组企业在几个国家是否达到一定的营业额门槛。

A列是国家(第2行=全球;第4-34行=欧盟成员国); 专栏CH是每个企业的营业额(全球和每个欧盟成员国)。

四个标准必须得到满足,我努力没有(三)。 作为背景,标准(ii)是:

(2)至less有三个成员国的所有合并公司的营业额超过1亿欧元

我在这里find了解决scheme。

{=IF(SUM(IF(MMULT(C4:H31+0;TRANSPOSE(COLUMN(C4:H31)^0))>=100*10^6; 1; 0))>=3; TRUE; FALSE)} 

标准(iii)是

(iii)在(ii)项下的三个成员国中,至less有两家公司的营业额超过2500万欧元,

当在自己的数组中分割两个标准时,我会得到每个国家的正确的真/假值: 成员国的合计营业额超过1亿美元

 {=IF(MMULT(C4:H31+0;TRANSPOSE(COLUMN(C4:H31)^0))>=100*10^6;TRUE;FALSE)} 

成员国中至less有两家公司的营业额超过25亿欧元

 {=IF((MMULT(IF(C4:H31>=25*10^6;1;0);TRANSPOSE(COLUMN(C7:H34)^0)))>=2;TRUE;FALSE)} 

但是,将这两个公式与IF(AND())结合使用不起作用

 {=IF(AND(MMULT(C4:H31+0;TRANSPOSE(COLUMN(C4:H31)^0))>=100*10^6;(MMULT(IF(C4:H31>=25*10^6;1;0);TRANSPOSE(COLUMN(C4:H31)^0)))>=2);TRUE;FALSE)} 

有没有办法做到这一点,通过使用数组(首选)或VBA?

非常感谢!

ElEsido

你说的两个公式分开工作正常。 他们都在做的是给你一个1和0的列vector,你可以通过求和元素来计算。

要组合它们,你需要对每一对元素做一个标量乘,这样就可以得到另一个列向量,你可以用同样的方法来计算,所以它看起来像这样:

 =SUM(IF(MMULT(C4:H10+0,TRANSPOSE(COLUMN(C4:H10)^0))>=100, 1, 0)*IF((MMULT(IF(C4:H10>=25,1,0),TRANSPOSE(COLUMN(C7:H10)^0)))>=2,1,0)) 

为了简单起见,我只是在几行数据上进行了testing,因此您需要将其扩展到实际的数据,并将数以百万计的数据返回。

在这里输入图像说明