我有一本包含两张工作表的工作簿。
工作表 #1 包含我需要在工作表 #2 中进行计算的一系列值。
范围从 A1 到 A10。
是否可以使用一个公式来识别这些起始值和终止值,而无需我明确地对其进行硬编码?此外,我希望 Excel 在找到范围后为其命名,以便我可以使用该名称作为后续 SUMPRODUCT() 函数的输入参数。
我试图避免使用 VBA,但不确定我所尝试做的事情是否可以通过现成的公式实现。
答案1
通过创建命名范围并使用以下公式,可以很容易地获得具有已知起点的动态范围:
=$A$1:INDEX($A:$A,COUNTA($A:$A))
然而,如果 A1 要改变,它就变成:
=INDIRECT("A"&MATCH(INDEX(Sheet1!$A:$A,MATCH(TRUE,INDEX((Sheet1!$A:$A<>0),0),0)),Sheet1!$A:$A,FALSE)&":A"& COUNTA(Sheet1!$A:$A)+MATCH(INDEX(Sheet1!$A:$A,MATCH(TRUE,INDEX((Sheet1!$A:$A<>0),0),0)),Sheet1!$A:$A,FALSE)-1)
再次作为命名范围。
请注意,仅当 A 列中没有除感兴趣的数据之外的其他数据时,这才会起作用。