我正在尝试检查 Excel 数据库中的某些数据,并创建了一个单独的工作表(在同一个工作簿中),其中包含一些相当简单的“DSUM”查询。
我复制了一个公式(绝对和相对,视情况而定),它对于前二十三个 DSUM 运行良好,然后只给出“#value”错误。
我正在使用单元格引用作为中间的“字段”值……严格来说我不应该这样做,但它适用于查询的前半部分。为了以防万一,我还尝试了引号中的文本标签和数字列号 - 仍然会导致错误。
如果我重复最后一个工作查询,在它开始出错之前,它工作正常。如果我删除工作查询或将其更改为与第一个不工作的查询相同,则会出现错误。“检查”表中最后一个工作列是“Z”,而“AA”是第一个不工作的列。这很可能只是巧合,但我认为我应该提一下。
该文件的副本位于此处:http://www.stuff.net/eurovision.xlsDSUM 查询位于‘检查’表上。
如果有人知道有 bug,我会非常感激。我已经盯着 / 玩弄 / 大声抱怨这个问题好几个小时了。或者,如果我错过了一些非常基本的东西,请随时指出,当我脸红时,请感受你所在位置的热度。
答案1
我想出了这个办法
=DSUM(Data!$A$1:Data!$BT$2000, D$1,$A$1:$A$2)
check
从D2 开始拖到第 2 行
=DSUM()
标准=DSUM(database, field, criteria)
是
- 数据库就是你正在搜索的地方
- 字段是您要查找的标题
- 满足条件
字段可以是列号,也可以是您要查找的文本。在此场景中,您要返回第 1 行中的每个条目check
,因此您可以使用引用第 1 行,D$1
当条件为真时,它将更改列,但不更改行,在数据库中搜索该单元格中的文本。
答案2
我看到两个问题 - 一个可以解决问题,另一个可以节省您在拖动数据时修复公式的时间
- 您没有搜索所有数据:
您搜索 A1:AR2000 - 范围应为 A1:BT2000
=DSUM(Data!$A$1:Data!$BT$2000, AA1,$A$1:$A$2)
- 当你向下复制公式时,它会将 AA1 更改为 AA2、AA3 等,当你希望它停留在 AA1 时
,在 AA1 中的 1 前面添加一个 $,以阻止它更改行
=DSUM(Data!$A$1:Data!$BT$2000, AA$1,$A$1:$A$2)