所以我使用unsigned int size(void)
{
int ctr = 0;
for (int i = 0; i < N; i++)
{
if (sizer -> children[i] == NULL)
{
continue;
}
else
{
// do i need to use a pointer here to point
// to sizer before changing it
sizer = sizer -> children[i];
if ((sizer -> is_word) == true)
{
ctr ++;
}
int x = size();
ctr += x;
}
}
// Before returning ctr should i use the pointer to change sizer to
// what it was previously . Can it work???
return ctr;
}
是因为我有一些不同的标准要针对大型数据集进行检查。
我想取两个序列(例如Countifs()
和A2:A10
),并计算A数大于对应的B数(A2对B2,A3对B3等)的多少倍。 ),同时还要检查第三个序列(B2:B10
)是否等于某个值。
这是我尝试过的粗略版本:
C2:C10
因此,在此示例中,它将返回2: example data
我尝试对数组公式执行Control + Shift + Enter,但这没有用。
编辑:谢谢阿什,您是对的,公式确实适用于该示例。但是由于某些原因,在另一个示例中却没有:data。它使用时间而不是正常数字,但这不会有所不同
答案 0 :(得分:0)
您的逻辑对我来说很好。在单元格E1中,我有这个:
=COUNTIFS(A2:A11,">"&B2:B11,C2:C11,"1/1/2018")
产生2。或者,您可以对SUMPRODUCT进行相同操作:
=SUMPRODUCT(--(A2:A8>=B2:B8),--(C2:C8=E1))
单元格E1包含'1/1/2018'
答案 1 :(得分:0)
您可以在ARRAY公式中使用SUM()+ IF(),如下所示:
=SUM(IF(A2:A5>B2:B5,1,0)*IF(C2:C5=DATE(2018,1,1),1,0))
与数组公式一样,仅使用CTRL + SHIFT + ENTER而不是ENTER进行确认,以便获得括号:
{=SUM(IF(A2:A5>B2:B5,1,0)*IF(C2:C5=DATE(2018,1,1),1,0))}
答案 2 :(得分:0)
您可以使用以下公式,只需通过ENTER键确认即可。
=SUMPRODUCT(--(A2:A10>B2:B10),--(C2:C10="1/1/2018"+0))