答案1
=SUM(IFERROR(--((B:B>YEAR(TODAY())-18)*(C:C+D:D)>0),0))
如果您使用 SUM、COUNTIF、MAXIFS 等函数,则可以使用加法表示 OR,使用乘法表示 AND。分解上述公式中的各个部分:
(B:B>YEAR(TODAY())-18)
根据日期创建一个 TRUE/FALSE (T/F) 值数组。(C:C+D:D)
将 Wine 和 Bets 列相加。这类似于 OR,因为只有当两个值都为 0 时,才会得到 0(假)。(B>YEAR)*(C+D)
将两个值相乘。如果任何一个项为 0,这类似于数组的 AND 函数。(B>YEAR)*(C+D)>0
然后,返回一个 T/F 数组,它是我们的伪 AND 函数的真实结果。--
通过数学运算将 T/F 强制转换为 1/0:negative(negative(T/F)) 使 Excel 将 T/F 转换为等价的数值。IFERROR(~,0)
是因为文本值(比如标题)会引发错误,所以我们通过将它们变成 0 来忽略它们。SUM(~)
根据我们的伪函数,将所有为 1 或 0 的值相加AND(B>YEAR,OR(C,D))
。