Excel单元格公式正在更新与工作表名称。 从ASP.NET导出

=CONCATENATE( "Level3!$B", MATCH($B6,Level31!$A:$A,0),":$B", COUNTIF(Level31!$A:$A,$B6) + MATCH($B6,Level31!$A:$A,0)-1) 

我在Excel单元格中有这个公式。 我通过C#代码复制粘贴在下面的所有行中。 直到这里还好。

问题是在这个公式中, Level3是一个表名,被重命名为Level31 。 这个变化在公式中自动反映在三个地方,而不是一个地方。为什么在手动公式更新单元格后,它工作正常。

第二个问题是在下一个单元格中实现另一个公式。 当我打开表单时,显示#N/A但是当我单击单元格并按Enter键时。 它开始工作..

任何人都可以请指导我?

如果引用第一个位置为=CONCATENATE( "Level3!$B", ,则该值存储为string,不会自动从3调整为31.尝试此公式=CONCATENATE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"!$B", MATCH($B6,Level31!$A:$A,0),":$B", COUNTIF(Level31!$A:$A,$B6) + MATCH($B6,Level31!$A:$A,0)-1) MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255) =CONCATENATE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)&"!$B", MATCH($B6,Level31!$A:$A,0),":$B", COUNTIF(Level31!$A:$A,$B6) + MATCH($B6,Level31!$A:$A,0)-1) MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)让你的第一个地方也是dynamic的。