Excel 中的 DSUM 和 DCOUNT 函数不适用于数据透视表

症状

请考虑 Microsoft Excel 中的以下方案:

  • 创建一个表,该表在工作表上包含两列或更多列的数据。

  • 在工作表中插入基于新表数据的新数据透视表。

  • 使用以下任一数据库函数输入公式:

    • DCOUNT
    • DSUM
  • 对数据库函数的数据库参数使用数据透视表的单元格引用。 并且,对数据库函数的字段参数使用数据透视表中列的单元格引用。

    例如,请考虑以下情况。 数据透视表位于单元格 C10:F20 中。 目标列是 F10,此列的列标签为“Total”。数据透视表所基于的数据库表位于 N1:Q10 中。 函数的条件为 H2:H12。 DCOUNT 函数参数如下所示:

    database= C10:F20

    field= F10

    criteria= H2:H12

    函数编写方式如下:DCOUNT (C10:F20、F10、H2:H12)
    在此方案中,计算 DCOUNT 和 DSUM 函数时,它们返回以下错误:

    “#VALUE!”

    而且,如果对 fieldparameter 使用列标签“Total”,则 DCOUNT 和 DSUM 函数也会返回“#VALUE!”错误。

原因

出现此问题的原因是 DCOUNT 和 DSUM 函数的字段参数无法使用单元格引用或列标签从数据库表检索数据。 在数据透视表上使用 DCOUNT 和 DSUM 函数时,字段参数只能使用数字来表示列在列表中的位置。 例如,参数可以对第一列使用 1,对第二列使用 2,依此类移。 不要在数字周围使用引号。

解决方法

若要解决此问题,请使用列标签或列位置值来标识要在 field 参数中使用的列。

例如,通过使用“症状”部分中的示例,可以按如下所示重写 DCOUNT 函数:

DCOUNT (C10:F20,4,H2:H12)