在Excel中,我试图计算包含31 x 17表中数据的行数。以下公式可以完成这项工作,但它既繁琐又不动态。有没有办法使用函数或数组公式改进此公式?
=SUM(IF(SUM(B3:AF3)>0,1),IF(SUM(B4:AF4)>0,1),IF(SUM(B5:AF5)>0,1),IF(SUM(B6:AF6)>0,1),IF(SUM(B7:AF7)>0,1),IF(SUM(B8:AF8)>0,1),IF(SUM(B9:AF9)>0,1),IF(SUM(B10:AF10)>0,1),IF(SUM(B11:AF11)>0,1),IF(SUM(B12:AF12)>0,1),IF(SUM(B13:AF13)>0,1),IF(SUM(B14:AF14)>0,1),IF(SUM(B15:AF15)>0,1),IF(SUM(B16:AF16)>0,1),IF(SUM(B17:AF17)>0,1),IF(SUM(B18:AF18)>0,1),IF(SUM(B19:AF19)>0,1))
我没有工作的可能答案是DBCOUNTA()和SUMPRODUCT( - (SUMIFS))。
答案 0 :(得分:1)
这个问题有三种常用方法。
第一个 - 也可以说是最明智的(当然也最容易理解) - 选项是在现有表格中使用附加列。例如,假设我们为此目的使用列AG,我们将在AG3
:
=COUNT(B3:AF3)>0
并根据需要复制。
之后,您可以通过以下方式获得您的计数:
=COUNTIF(AG3:AG19,TRUE)
如果由于某种原因,您无法(或实际上不愿意)使用其他列,则有两个主要选择。
这些中的第一个可能更直观易懂,尽管它存在易变性,即:
=SUMPRODUCT(0+(SUBTOTAL(2,OFFSET(B3:AF3,ROW(B3:AF19)-MIN(ROW(B3:AF19)),))>0))
替代的,非易失性的(因此在我看来最好)构造,是以下数组公式** :
=SUM(0+(MMULT(0+(LEN(B3:AF19)>0),TRANSPOSE(COLUMN(B3:AF19)^0))>0))
此致
**数组公式的输入方式与'标准'相同。公式。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果您已正确完成,您会注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入这些括号)。
答案 1 :(得分:0)
如果您只有17行,请尝试:
$args = array(
'posts_per_page'=>5,
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => array(
'relation' => 'AND',
'_post_views' => array(
'key' => '_post_views',
'type' => 'NUMERIC',
'compare' => 'LIKE'
),
'_post_like_count' => array(
'key' => '_post_like_count',
'type' => 'NUMERIC',
'compare' => 'LIKE'
),
),
);