如何引用公式中 A6 行之后的所有非空白单元格

如何引用公式中 A6 行之后的所有非空白单元格

我想使用以下公式: INDEX(A6:A94,MODE(MATCH(A6:A94,A6:A94,0)))

除了确切的行数不明确(使用 VBA 导入)。如何引用从 A6 开始的所有非空白单元格以用于上述公式?

它应该是这样的:INDEX(A6:A{last non blank},MODE(MATCH(A6:A{last non blank},A6:A{last non blank},0)))

谢谢你!

答案1

有很多方法可以引用可变大小的范围。还有几种方法可以找到列中的最后一个非空白。


首先,如何找到列中最后一列非空的行A:A

我将把这些公式包装在一个语句中,如果出错,该语句IFERROR将返回。这是因为你声明你的数据从第 6 行开始,所以如果出现问题,这将让你返回而不是一些错误消息。如果你6A6显示错误,则只需删除IFERROR包装即可。

如果您的数据全部是数字,请使用以下方法:IFERROR(MATCH(10^308,A:A),6)
如果您的数据全部是文本,请使用以下方法:IFERROR(MATCH(REPT(CHAR(255),255),A:A),6)
如果您的数据是数字和文本,则找出两者中的最大值:MAX(IFERROR(MATCH(10^308,A:A),6),IFERROR(MATCH(REPT(CHAR(255),255),A:A),6)

Ctrl您也可以使用数组公式,但我倾向于避免使用它们,因为它们通常比较慢。它将如下所示,并使用+ Shift+输入Enter。(如果公式两侧出现花括号 { },您就会知道它是正确的。)

MAX(ROW(A:A)*NOT(ISBLANK(A:A)))

二、如何引用范围A6:A{last non blank row}

由于您需要三次相同的引用,因此添加辅助单元格可能是一个好主意。有多种方法可以实现我们想要的结果,但我将展示几种。假设辅助单元格是,B1而您想要的公式是B2。我将使用“最后一行”示例公式作为文本,因为我相信这就是您的数据。您应该将其更改为您需要的任何内容。

方法INDEX:(可能是最好的选择)

B1 = IFERROR(MATCH(REPT(CHAR(255),255),A:A),6)
B2 = INDEX(A6:INDEX(A:A,B1),MODE(MATCH(A6:INDEX(A:A,B1),A6:INDEX(A:A,B1),0)))

方法INDIRECT

B1 = "A6:A"&IFERROR(MATCH(REPT(CHAR(255),255),A:A),6)
B2 = INDEX(INDIRECT(B1),MODE(MATCH(INDIRECT(B1),INDIRECT(B1),0)))

方法OFFSET

B1 = IFERROR(MATCH(REPT(CHAR(255),255),A:A),6)
B2 =INDEX(OFFSET(A6,0,0,B1-5),MODE(MATCH(OFFSET(A6,0,0,B1-5),OFFSET(A6,0,0,B1-5),0)))

相关内容