我在Excel工作簿中的各种工作表上有以下公式:
=SUM(SUMIFS(INDIRECT(CONCATENATE("'",REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")," HR","'!$e:$e")),INDIRECT(CONCATENATE("'",REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")," HR","'!$q:$q")),I$13,INDIRECT(CONCATENATE("'",REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")," HR","'!$j:$j")),{"שעון","בתפקיד","עבודה מהבית"}))
公式采用当前工作表的名称,连接字符串" HR"它,并转到工作表中的一系列单元格,命名为连接字符串。 它对那里的数据执行一些计算并返回值。
由于某种原因,不同纸张中的单元格包含"相同的"挥发性公式显示了另一张表中会出现的值。 要查看正确的值,我必须只输入相关表格中的一个公式框,按回车键,评估结果正确。
我尝试了公式评估,理论上它向我展示了每张表上正确的计算过程。
有什么建议吗?可能是一些与公式正确性无关的评估问题吗?
答案 0 :(得分:1)
您希望CELL在没有给出引用的情况下返回当前单元格的信息,但事实并非如此。 CELL根据ACTIVE单元格返回值 - ACTIVE单元格是计算时处于活动状态的单元格。每次细胞重新计算时,它都会查看当时的活动细胞 ,它可能位于另一张纸上。
要查看此操作,请使用公式=CELL("address")&" "&TEXT(NOW(),"hh:mm ss")
由于NOW是易失性的,因此每次编辑单元格时都会重新计算单元格。编辑任何其他单元格,您将看到该单元格的地址及其计算时间。
您几乎总是希望包含一个参考值,例如CELL("filename",A1)
要获得预期的行为,您只需使用对当前单元格的相对引用。