0

我有一个程序可以根据来自数据库的查询动态创建 excel 工作簿。在其他几个中,有这两个工作表。第一个列出了几个项目中每个项目中的组件信息。第二张表按项目列出了每个组件中的所有员工及其每周分配的小时数。所以我制定了这个公式:

=SUMPRODUCT(--(OFFSET('User Breakdown'!$B$3,0,0,COUNTA('User Breakdown'!$B:$B),1)=A7)*(OFFSET('User Breakdown'!$C$3,0,0,COUNTA('User Breakdown'!$C:$C),1)=B9)*(OFFSET('User Breakdown'!$E$3,0,0,COUNTA('User Breakdown'!$C:$C),52)))

将在每个项目和组件下分配给不同用户的所有小时数相加。它工作得很好。现在没有了。它返回一个#VALUE!错误。我们对用户细分表进行了一些更改,所以我认为这是因为这些更改。我们做了一些格式化,添加了一列,并填写了全年的值。我去了一张较旧的表格,其中公式有效,并逐步进行了所有这些更改,以查看公式将开始失败的地方。它从未失败过。仍然可以正常工作。所以我去了新表并取消了更改。该公式从未开始起作用。我将两个公式都复制到记事本中,然后坐在那里与同事逐个字符地比较它们。它们是相同的。我复制粘贴了工作表名称并返回公式(尽管那将是#REF!错误而不是#VALUE!错误)。MS 帮助包含与弹出窗口完全相同的文本,只是格式更多且页面非常慢。我将公式的各个部分分开,每个部分单独计算。

所以这给我留下了两个选择:反复刺伤计算机(这不起作用),或者问你们好人可能是什么问题。

4

1 回答 1

1

#VALUE!错误可能意味着您在定义的最后一个范围内有一些文本值

=OFFSET('User Breakdown'!$E$3,0,0,COUNTA('User Breakdown'!$C:$C),52)

这个版本有用吗?

=SUMPRODUCT((OFFSET('User Breakdown'!$B$3,0,0,COUNTA('User Breakdown'!$C:$C),1)=A7)*(OFFSET('User Breakdown'!$C$3,0,0,COUNTA('User Breakdown'!$C:$C),1)=B9)*ISNUMBER(OFFSET('User Breakdown'!$E$3,0,0,COUNTA('User Breakdown'!$C:$C),52)),OFFSET('User Breakdown'!$E$3,0,0,COUNTA('User Breakdown'!$C:$C),52))

如果确实如此,那只是因为该版本将忽略任何文本值 - 您可能仍需要确定文本值出现的位置,以防它们应该是包含在总数中的数字.....

于 2013-02-12T16:01:08.383 回答