关于Excel名称

来源:百度知道 编辑:UC知道 时间:2024/07/04 12:47:27
有一个记录数不确定的表,B列字段名为"单位",D列字段名为"科目",E列字段名为"金额"。为了方便汇总运算,定义如下名称:

DW=INDIRECT("b2"&":b"&COUNTA(sheet1!$B:$B))
KM=INDIRECT("d2"&":d"&COUNTA(sheet1!$D:$D))
JE=INDIRECT("e2"&":e"&COUNTA(sheet1!$E:$E))

这时计算单位为“A单位”,科目为“基本工资”的总额可用下面的公式
=SUMPRODUCT((DW="A单位")*(KM="基本工资"),(JE))

这个公式在同一张表中,计算没有问题
但是,如果在另外一张表中计算,就会出现零
求教,此时相关的名称应该如何定义
谢谢各位的回答,请实际操作一下,你会发现很奇怪的.
大概是我没说清:我的目的是以sheet1为数据库,需要综合计算的数据利用公式在另外的工作表中产生,形成报表.

名称应该是整个工作簿中可以通用的,可是本例中,在另外的工作表中使用这些名称会出现错误结果,所以,应该是名称定义有误
有请热心的同志实际操作一下。

还是不成

向ExcelHome求援,终于解决了:
利用offset函数定义名称,然后用数组公式求和

后而加了工作表名称,前面怎么不加呢?
DW=INDIRECT("Sheet1!b2:b"&COUNTA(sheet1!$B:$B))
KM=INDIRECT("Sheet1!d2:d"&COUNTA(sheet1!$D:$D))
JE=INDIRECT("Sheet1!e2:e"&COUNTA(sheet1!$E:$E))
公式中的“"b2"&":b"”可以直接写成“"b2:b"”没必要将其分开再连接。

确实,还忽略了名称问题。DW是有效列标,在=SUMPRODUCT((DW="A单位")*(KM="基本工资"),(JE))中,优先引用了DW列,而不是名称所指的B列。所以这个名称要改一个,比如DW_1。
另外两个名称在2003版没有问题,但如果是2007版,同样有问题。

在工作表前面加上工作薄的名称就好了,怎么加,你打开两个工作薄,在第一个工作薄的第一个工作表的第一个单元格里输入"=",再点到第二个工作薄的第一个工作表的第一个单元格,回车,看第一个工作薄的第一个工作表的第一个单元格,就知道了.