Excel-计算跨多列的一对值的出现

时间:2018-12-04 18:46:43

标签: arrays excel if-statement count countif

我有一个矩阵:

A   B   C   D   E   F
67  1   43  48  49  49
12          35  50  50
            33      
22  33              33

我想计算至少一对预先指定的列中具有条目的行数。这仅仅是单元格是否具有值(而不是特定值)的问题。列对是A-D,B-E和C-F。

在当前示例中,答案是2,因为2行(第1行和第2行)包含至少一对列的条目。具体来说,第1行包含所有列对的条目,而第2行包含A-D列对的条目-但这仅满足标准。如果第4行的E列中有一个条目,那么这也将符合条件,答案将变为3)。

我已经考虑过如何使用以下数组公式对两列的条目对进行计数:

=SUM(IF(A1:A4<>"",IF(D1:D4<>"",1,0)))

但是,我很难使用OR类型的功能将其扩展到多列,即使每行包含更多的配对,该功能每行也只计算一对条目。

我问了类似的问题here,这可能对您有所帮助。

感谢您对此的想法。

2 个答案:

答案 0 :(得分:2)

它并不漂亮,但似乎可以正常工作(至少对于提供的示例数据而言):

enter image description here     = SUM(($ A $ 1:$ A $ 4 <>“”)($ D $ 1:$ D $ 4 <>“”))+ SUM(($ B $ 1:$ B $ 4 <>“”)< / em>     ($ E $ 1:$ E $ 4 <>“”))+ SUM(($ C $ 1:$ C $ 4 <>“”)($ F $ 1:$ F $ 4 <>“”))-SUM( ($ A $ 1:$ A $ 4 <>“”)     ($ D $ 1:$ D $ 4 <>“”)($ B $ 1:$ B $ 4 <>“”)($ E $ 1:$ E $ 4 <>“”))-SUM( ($ A $ 1:$ A $ 4 <>“”)($ D $ 1:$ D $ 4 <>“”)     ($ C $ 1:$ C $ 4 <>“”)($ F $ 1:$ F $ 4 <>“”))-SUM(($ B $ 1:$ B $ 4 <>“”) ($ E $ 1:$ E $ 4 <>“”)($ C $ 1:$ C $ 4 <>“”)     ($ F $ 1:$ F $ 4 <>“”))+ SUM(($ A $ 1:$ A $ 4 <>“”)($ D $ 1:$ D $ 4 <>“”) ($ B $ 1:$ B $ 4 <>“”)($ E $ 1:$ E $ 4 <>“”)     ($ C $ 1:$ C $ 4 <>“”)*($ F $ 1:$ F $ 4 <>“”))

A&D有值的行数+ B&E有值的行数+ C&F有值的行数-A,D,B,E有值的行数-A,D,C的行数,F具有值-B,E,C,F具有值的行数+所有6个具有值的行数。

答案 1 :(得分:1)

我再想一想,如果它不容易分解为单独的和,则常规数组公式最简单,其中*代表AND和+代表OR(使用Sign函数将OR(1,1 ... 1):

=SUMPRODUCT(SIGN((A1:A4<>"")*(D1:D4<>"")+(B1:B4<>"")*(E1:E4<>"")+(C1:C4<>"")*(F1:F4<>"")))