我试图将excel公式转换为mysql语法。我不明白这个公式的作用:
=IF(G1="ALL",SUMPRODUCT((Data!I:I>=Dashboard!C4)*(Data!I:I<=Dashboard!C5)*(Data!P:P="ON-TIME")*(Data!B:B<>"")/
COUNTIF(Data!B:B,Data!B:B&"")),
SUMPRODUCT((Data!D:D=G1)*(Data!I:I>=Dashboard!C4)*(Data!I:I<=Dashboard!C5)*(Data!P:P="ON-TIME")*(Data!B:B<>"")/
COUNTIF(Data!B:B,Data!B:B&"")))有人能解释一下这个COUNTIF的功能(数据!B:B,Data!B:B&"")吗?
发布于 2019-09-04 02:15:41
COUNTIF: 语法:
=COUNTIF (range, criteria)描述:COUNTIF是一种计算符合单个标准的单元格的函数。COUNTIF可用于计算具有符合特定标准的日期、数字和文本的单元格。COUNTIF函数支持逻辑运算符(>,=)和通配符(*,?)进行部分匹配。
范围是显而易见的,但是条件包括两个Excel黑客,它们可能有点模糊:
&将构造文本字符串。
COUNTIF(Data!B:B,Data!B:B&"")的意思是:计数与此单元格值匹配的范围Data!B:B中的值,如果此单元格为空,则计数范围内的所有空单元格。
演示它可能更容易,请参见下面的示例:

注意J5中的结果,如果没有
&"",空单元格将不包含在计数结果中。
在本例中,我们可以看到如何将公式外推到单个单元格中,这意味着您必须多次输入公式,但当您尝试在第一个单元格(D1)中设置该公式并使用公式拖动插入符号将该公式拖动到其他单元格时,它还将转换范围,这不是您想要的,请参见:

特别是当您的范围很大时,在标准中添加一个范围,创建溢出范围意味着我们只需要定义一次公式,excel将有效地将其转换为范围中每个单元格的单独公式。
https://stackoverflow.com/questions/57780354
复制相似问题