Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Excel-缩小多对列的数组公式_Arrays_Excel_Count_Countif_Subtotal - Fatal编程技术网

Arrays Excel-缩小多对列的数组公式

Arrays Excel-缩小多对列的数组公式,arrays,excel,count,countif,subtotal,Arrays,Excel,Count,Countif,Subtotal,我有以下示例矩阵: A B C D E 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 我的任务是计算至少一对列(不包括A行)在两列中都包含条目的行数,例如,B&C生成一对,D&e生成另一对。在上面的示例中,答案是3:第1行包含两对列的条目,第3行包含第一对列B和C的条目,第4行包含第二对列D和E的条目。也就是说,3行包含至少一对指定列的数据 以下数组

我有以下示例矩阵:

A   B   C   D   E
1   1   1   1   1
2   1       1   
3   1   1       
4           1   1
5       1       1
我的任务是计算至少一对列(不包括A行)在两列中都包含条目的行数,例如,B&C生成一对,D&e生成另一对。在上面的示例中,答案是3:第1行包含两对列的条目,第3行包含第一对列B和C的条目,第4行包含第二对列D和E的条目。也就是说,3行包含至少一对指定列的数据

以下数组公式可获得所需的结果:

=COUNT(IFS(SUBTOTAL(2,OFFSET(B1,ROW(B1:B5)-ROW(B1),0,1,COLUMNS(B1:C1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1))),SUBTOTAL(2,OFFSET(D1,ROW(D1:D5)-ROW(D1),0,1,COLUMNS(D1:E1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1)))))

问题是,我有大约30对列,其中一些是非相邻的,一个相对较大的数据集多达10000行。我正在寻找一种更有效的方法来实现Excel公式中所需的结果。请注意,我希望避免创建新行或新列,这就是为什么我使用数组公式的原因。如果列A实际上不相关,我不太清楚为什么要在示例中包括它

因此,对于B1:E5范围:

=SUMPRODUCTNMMULTB1:D5*C1:E5*是七列C1:E5-MINCOLUMNC1:E5,行索引X:A,1:INDEXA:A,列B1:D5^0>0

根据需要扩展范围,但请注意索引结构中的A:A部分应保持不变

无需使用上述CSE


关于MMULT的有趣用法,谢谢。如果我的列不是相邻的,例如,两个成对的列是B和e,而不是B和C?同样,对于连续的列,如F和I、J和M等,我将如何调整。?或者您的数据仅限于B:E列?如果您询问的是非相邻列之间的间距,那么它并不总是恒定的,例如,有时它的间距为12,有时为9,有时为4,这取决于列在数据库中的位置。实际数据范围从A到BD!!那么,任何解决方案都需要知道在整个范围内哪些列将被“配对”。我明白了。不知何故,我试图通过使用一个条件值对某些代码的部分进行分组来避免这种情况,该值索引列组之间的距离,例如,对于第12列,计算每个列中有多少个条目,然后对于相隔9列的列,计算有多少个条目,等等。。某种分块代码。但我是个新手,不太懂。因此,我最初发布的代码是如此零碎和不简单