动态帮助列?

Dynamic Helper Column?

我希望使用动态数组创建辅助单元格,这可能吗?

通常我会使用如本例中的公式 =IF(A4="",C2,A4) 检查 A 列是否为空,如果是,则复制上述值,直到 A 列中出现新值。

然而,如图所示,当我插入新行时,辅助单元格会损坏。

出于这个原因,我想使用动态数组来创建辅助单元格,它应该能够处理插入或删除的行。

我遇到的问题是,与您可以向下拖动的普通公式不同,动态数组将值视为一个整体。如图所示,使用 =IF(A4:A40="","-",A4:A40) 插入一个连字符。本质上,我希望替换连字符,以便“对于 A4:A40 之间的每个值,检查是否为空,如果为真,则取上述单元格中的值”。本质上是创建一个动态帮助列。

您可以使用 Match 的不精确形式找到非空白的最后一行,然后使用 Index 从那里获取 A 列中的值:

=INDEX(A4:A40,MATCH(ROW(A4:A40),IF(A4:A40<>"",ROW(A4:A40))))

这种事情在 Google 表格中做了很多。

如果插入一行,公式变为

=INDEX(A4:A41,MATCH(ROW(A4:A41),IF(A4:A41<>"",ROW(A4:A41))))

并且仍然可以正常工作。