我正在尝试将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(Data!B:B,Data!B:B&“”)的功能吗?
答案 0 :(得分:0)
Excel COUNTIF:
语法:=COUNTIF (range, criteria)
说明:COUNTIF
是对满足单个条件的单元格进行计数的功能。 COUNTIF可用于对日期,数字和文本与特定条件匹配的单元格进行计数。 COUNTIF函数支持逻辑运算符(> ,, =)和通配符(* ,?)进行部分匹配。
范围很明显,但是条件包括两个Excel hacks,可能有些晦涩:
&
之前,单元格引用将构造一个文本字符串。
COUNTIF(Data!B:B,Data!B:B&"")
说:
计算Data!B:B
范围内与此单元格值匹配的值,如果该单元格为空,则计算该范围内的所有空单元格。
进行演示可能会更容易,请参见以下示例:
-范围:A1:B3
-条件:对每个单元格计算范围内具有相同值的所有匹配项
-E列显示了D列中显示的各个公式的结果
-第I列显示了H列中显示的各个公式的结果
-D5显示单个公式,其溢出范围为源范围矩阵的大小
-为了进行比较,H5具有溢出范围的公式等于源范围矩阵的大小
注意J5中的结果,没有
&""
的空白单元格将不包括在计数结果中。
在此示例中,我们可以看到如何将公式外推到各个单元格中,这意味着您必须多次输入公式,但是当您尝试在第一个单元格(D1)中设置该公式并使用公式拖动时插入符号将该公式拖到其他单元格上,它还将转置范围,这不是您想要的范围,请参见:
特别是当您的范围较大时,将范围放入条件中,创建溢出范围意味着我们只需定义一次公式,excel就会有效地将其转换为范围内每个单元格的单个公式。