DCOUNTA 函数

应用对象
Microsoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016

本文介绍 Microsoft Excel 中 DCOUNTA 函数的公式语法和用法。

说明

返回列表或数据库中满足指定条件的记录字段(列)中的非空单元格的个数。

字段参数为可选项。 如果省略字段,DCOUNTA 计算数据库中符合条件的所有记录数。

语法

DCOUNTA(database, field, criteria)

DCOUNTA 函数语法具有下列参数:

  • 数据库 必填。 构成列表或数据库的单元格区域。 数据库是包含一组相关数据的列表,其中包含相关信息的行为记录,而包含数据的列为字段。 列表的第一行包含每一列的标签。
  • 领域 选。 指定函数所使用的列。 输入两端带双引号的列标签,如 "使用年数" 或 "产量";或是代表列表中列位置的数字(不带引号):1 表示第一列,2 表示第二列,依此类推。
  • 标准 必填。 包含所指定条件的单元格区域。 可以为参数 criteria 指定任意区域,只要此区域包含至少一个列标签,并且列标签下至少有一个在其中为列指定条件的单元格。

备注

  • 可以为参数 criteria 指定任意区域,只要此区域包含至少一个列标签,并且列标签下方包含至少一个用于指定条件的单元格。
    例如,如果区域 G1:G2 在 G1 中包含列标签 Income,在 G2 中包含数量 ¥100,000,可将此区域命名为 MatchIncome,那么在数据库函数中就可使用该名称作为条件参数。
  • 虽然条件区域可以位于工作表的任意位置,但不要将条件区域置于列表的下方。 如果向列表中添加更多信息,新的信息将会添加在列表下方的第一行上。 如果列表下方的行不是空的,Excel 将无法添加新的信息。
  • 确定条件区域没有与列表相重叠。
  • 若要对数据库中的一个完整列执行操作,请在条件区域中的列标签下方加入一个空行。

示例

复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。 如果将以下任何示例复制到 Excel 中,请确保选中此表中的所有单元格,包括左上角的单元格。

树种 高度 年数 产量 利润 高度
="=苹果树" >10 <16
="=梨树"
树种 高度 年数 产量 利润
苹果树 18 20 14 105.0
梨树 1.2 1.2 10 96.0
樱桃树 1.3 14 9 105.0
苹果树 14 15 10 75.0
梨树 9 8 8 76.8
苹果树 8 9 6 45.0
公式 说明 结果
=DCOUNTA(A4:E10, "利润", A1:F2) 对列 A 中高度 >为 10 和 <16 的行 (1) 进行计数。 仅第 8 行满足上述三个条件。 1

条件示例

  • 在单元格中输入 = 文本时,Excel 将它解释为公式并尝试计算它。 要输入=文本以使 Excel 不会尝试计算它,请使用以下语法:
    ='''=entry''
    其中 ,条目 是要查找的文本或值。 例如:
在单元格中键入的内容 Excel 计算和显示的内容
="=彭德威" =彭德威
="=3000" =3000
  • 在筛选文本数据时,Excel 不区分大小写。 但是,您可以使用公式来执行区分大小写的搜索。

以下各节提供了复杂条件的示例。

一列中有多个条件

布尔逻辑: (Salesperson = “Davolio” OR Salesperson = “Buchanan”)

要查找满足“一列中有多个条件”的行,请直接在条件区域的单独行中依次键入条件。

在下面的数据区域 (A6:C10) 中,条件区域 (B1:B3) 用于计算“销售人员”列中包含“李小明”或“郑建杰”的行。

销售人员
="=彭德威"
="=林恪"
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥4,500
农产品 黄雅玲 ¥63,280
农产品 刘英玫 ¥6,544
公式 说明 结果
'=DCOUNTA(A6:C10,2,B1:B3) 对 A6:C10 内满足第 2 行和第 3 行中任一“销售人员”条件的行数 (3) 进行计数。 =DCOUNTA(A6:C10,2,B1:B3)

多列中有多个条件,其中所有条件都必须为真

布尔逻辑: (类型 = “Produce” AND Sales > 2000)

要查找满足“多列中有多个条件”的行,请在条件区域的同一行中键入所有条件。

在下面的数据区域 (A6:C12) 中,条件区域 (A1:C2) 用于计算“类别”列中包含“农产品”并且“销售额”列中值大于 ¥2,000 的行。

类别 销售人员 销售额
="=农产品" >2000
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥4,500
农产品 黄雅玲 ¥935
农产品 刘英玫 ¥6,544
饮料 黄雅玲 ¥3,677
农产品 刘英玫 ¥3,186
公式 说明 结果
'=DCOUNTA(A6:C12,,A1:C2) 计算 A6:C12 中满足第 2 行 (2 个) 的行数 (=“Produce” 和 >2000) 。 =DCOUNTA(A6:C12,,A1:C2)

多列中有多个条件,其中所有条件都必须为真

布尔逻辑: (Type = “Produce” OR Salesperson = “Davolio”)

要查找满足“多列中有多个条件,其中所有条件都必须为真”的行,请在条件区域的不同行中键入条件。

在下面的数据区域 (A6:C10) 中,条件区域 (A1:B3) 显示“类型”列中包含“农产品”或“李小明”的所有行。

类别 销售人员
="=农产品"
="=彭德威"
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥675
农产品 黄雅玲 ¥937
农产品 黄雅玲
公式 说明 结果
'=DCOUNTA(A6:C10,"Sales",A1:B3) 对 A6:C10 内满足 A1:C3 中任一条件(其中“销售额”字段不为空)的行数 (2) 进行计数。 =DCOUNTA(A6:C10,"销售额",A1:B3)

多个条件集,其中每个集包括用于多个列的条件

布尔逻辑: ( (Salesperson = “Davolio” AND Sales >3000) OR (Salesperson = “Buchanan” AND Sales > 1500) )

要查找满足“多个条件集,其中每个集包括用于多个列的条件”的行,请在单独的行中键入每个条件集。

在下面的数据区域 (A6:C10) 中,条件区域 (B1:C3) 用于计算“销售人员”列中包含“李小明”并且“销售额”列中值大于 ¥3,000 的行,或者用于计算“销售人员”列中包含“郑建杰”并且“销售额”列中值大于 ¥1,500 的行。

类别 销售人员 销售额
="=彭德威" >3000
="=林恪" >1500
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥4,500
农产品 黄雅玲 ¥63,280
农产品 刘英玫 ¥6,544
公式 说明 结果
'=DCOUNTA(A6:C10,,B1:C3) 对 A6:C10 内满足 B1:C3 中所有条件的行数 (2) 进行计数。 =DCOUNTA(A6:C10,,B1:C3)

多个条件集,其中每个集包括用于一个列的条件

布尔逻辑: ( (Sales > 6000 和 Sales < 6500 ) 或 (Sales < 500) )

要查找满足“多个条件集,其中每个集包括用于一个列的条件”的行,请在多个列中包括同一个列标题。

在下面的数据区域 (A6:C10) 中,条件区域 (C1:D3) 用于计算“销售额”列中值在 ¥6,000 和 ¥6,500 之间以及值小于 ¥500 的行。

类别 销售人员 销售额 销售额
>6000 <6500
<500
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥4,500
农产品 黄雅玲 ¥63,280
农产品 刘英玫 ¥6,544
公式 说明 结果
'=DCOUNTA(A6:C10,,C1:D3) 计算满足第 2 行 ( (6000 和 6500 <行中的>条件或满足第 3 行 (500) ) 条件的行数 (<2 个) 。 =DCOUNTA(A6:C10,,C1:D3)

查找共享某些字符而非其他字符的文本值的条件

要查找共享某些字符而非其他字符的文本值,请执行下面一项或多项操作:

  • 键入一个或多个不带等号 (=) 的字符,以查找列中文本值以这些字符开头的行。 例如,如果键入文本“”作为条件,则 Excel 将找到“李小明”、“李威”和“李新”。
  • 使用通配符。
    可以使用下面的通配符作为比较条件。
用途 若要查找
? (问号) 任何单字符
例如,sm?th 可找到“smith”和“smyth”
*(星号) 任意字符数
例如,*east 可找到“Northeast”和“Southeast”
~(波形符)后跟 ?、* 或 ~ 问号、星号或波形符
例如,fy91~? 可找到“fy91?”

在以下数据区域 (A6:C10) 中,条件区域 (A1:B3) 用于计算“类型”列中以“肉”开头的行或“销售人员”列中第二个字符为“建”的行。

类别 销售人员 销售额
?u*
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥4,500
农产品 黄雅玲 ¥63,280
农产品 刘英玫 ¥6,544
公式 说明 结果
'=DCOUNTA(A6:C10,,A1:B3) 对满足 A1:B3 中任一条件的行数 (3) 进行计数。 =DCOUNTA(A6:C10,,A1:B3)

将公式结果用作条件

可以将公式的计算结果作为条件使用。 记住下列要点:

  • 公式必须计算为 TRUE 或 FALSE。
  • 因为您正在使用公式,请像您平常那样输入公式,而不要以下列方式键入表达式:
    ='''=entry''
  • 不要将列标签用作条件标签;请将条件标签保留为空,或者使用区域中并非列标签的标签(在以下示例中,是“计算的平均值”和“精确匹配”)。
    如果在公式中使用列标签而不是相对单元格引用或区域名称,Excel 将显示错误值,例如 #NAME?或 #VALUE!,位于包含条件的单元格中。 您可以忽略此错误,因为它不影响区域的筛选。
  • 用于条件的公式必须使用相对引用来引用第一行中的相应单元格。
  • 公式中的所有其他引用必须是绝对单元格引用。

筛选大于数据区域中所有值的平均值的值

在以下数据区域 (A6:C10) 中,条件区域 (C1:C2) 用于计算“销售额”列 (C7:C10) 中值大于所有“销售额”值的平均值的行。 平均值在单元格 C4 中计算,结果在单元格 C2 中与公式 =“”>&C4 组合,以创建所使用的条件。

销售
=CONCATENATE (“>”,C4)
计算的平均值
=AVERAGE(C7:C10)
类别 销售人员 销售额
饮料 蔡耀明 ¥51,220
肉类 刘英玫 ¥4,500
农产品 黄雅玲 ¥63,280
农产品 刘英玫 ¥6,544
公式 说明 结果
'=DCOUNTA(A6:C10,,C1:C2) 计算满足 C1:C2 (4611) 条件的行数 (>3) 。 C2 中的条件是通过将 =“”> 与单元格 C4 连接(C7:C10 的计算平均值)创建的。 =DCOUNTA(A6:C10,,C1:C2)

返回页首