= COUNTIF(Data!B:B,Data!B:B&“”)Excel公式的功能是什么?

时间:2019-09-04 01:21:24

标签: mysql excel

我正在尝试将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&“”)的功能吗?

1 个答案:

答案 0 :(得分:0)

  

Excel COUNTIF
  语法:=COUNTIF (range, criteria)
  说明:COUNTIF是对满足单个条件的单元格进行计数的功能。 COUNTIF可用于对日期,数字和文本与特定条件匹配的单元格进行计数。 COUNTIF函数支持逻辑运算符(> ,, =)和通配符(* ,?)进行部分匹配。

范围很明显,但是条件包括两个Excel hacks,可能有些晦涩:

  1. &之前,单元格引用将构造一个文本字符串。
    • 请参见COUNTIFS with wildcard characters(尚不清楚100%清除)
    • {range}&“” 意味着在计算中包括空单元格作为值,因为通常会自动跳过空单元格。
  2. 具有范围的标准将导致溢出范围评估
    • 注意:我在此上找不到很好的参考...
    • 在excel中,该公式将对范围内的每个单元格重复执行

COUNTIF(Data!B:B,Data!B:B&"")说: 计算Data!B:B范围内与此单元格值匹配的值,如果该单元格为空,则计算该范围内的所有空单元格。

  • 但是对于范围内的每个单元格也要执行此操作,返回范围内每个单元格的值矩阵,这就是溢出范围位。

进行演示可能会更容易,请参见以下示例:
-范围:A1:B3
-条件:对每个单元格计算范围内具有相同值的所有匹配项
-E列显示了D列中显示的各个公式的结果
-第I列显示了H列中显示的各个公式的结果
-D5显示单个公式,其溢出范围为源范围矩阵的大小 -为了进行比较,H5具有溢出范围的公式等于源范围矩阵的大小

Excel Countif Spill Range

  

注意J5中的结果,没有&""的空白单元格将不包括在计数结果中。

在此示例中,我们可以看到如何将公式外推到各个单元格中,这意味着您必须多次输入公式,但是当您尝试在第一个单元格(D1)中设置该公式并使用公式拖动时插入符号将该公式拖到其他单元格上,它还将转置范围,这不是您想要的范围,请参见:

Excel Countif formula drag

特别是当您的范围较大时,将范围放入条件中,创建溢出范围意味着我们只需定义一次公式,excel就会有效地将其转换为范围内每个单元格的单个公式。