在名称管理器中我使用这个参考创建了一个命名范围:
=COUNTIF($A$4:A4, Tbl_InventoryMain[Barcode])
Excel 会自动在 之前插入当前工作表名称$A$4:A4
。我需要保留此名称$A$4:A4
以便在其他工作表上使用相同的引用。我不想为每个工作表创建一个命名范围。
我怎样才能使这个命名引用在任何工作表上起作用?
这只是很长公式的一部分。这个特定方程式在数组中重复出现。我试图通过将整个公式的各个部分放在名称管理器中来减小公式的大小并加快计算速度。
答案1
我的回答重点是创建一个适用于$A$4:A4
所有工作表的引用,因为这是 Excel 在引用中附加不需要的工作表名称的部分。 (我假设您在引用表格时没有任何问题。)
您可以使用以下方法解决此问题间接功能如下:
在任意工作表上,选择单元格
A1
创建一个命名范围并引用:
=INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE)
根据您的问题,您引用的第二个单元格$A$4:A4
是相对的,并且此名称的引用是相应构建的。因此,如果您在单元格中使用此名称,A1
它将返回范围$A$4:A4
。如果您从名称中引用名称,B1
将正确返回范围$A$4:B4
。
怎么运行的
公式的前半部分很简单INDIRECT("$A$4")
。总是引用A4
当前工作表上的单元格。
后半部分稍微复杂一些。INDIRECT("R[3]C[0]",FALSE)
指的是“相对于当前单元格,在同一列中向下 3 行”。如果您在单元格中,则A1
这是单元格A4
。错误的参数告诉 INDIRECT 函数将文本解释为 R1C1 样式引用而不是默认的 A1 样式引用。
完整的公式
您的最终姓名参考将类似于以下内容:
=COUNTIF(INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE), Tbl_InventoryMain[Barcode])