症状
请考虑 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)