检索列中的最新数据

检索列中的最新数据

我有 3/4 列带有修订号(P01、P02、P03 等),我想构建一个公式,在新列中显示最新的修订号,这样我就不需要滚动到工作表的最右侧来获取此信息。

此外,当我突出显示某一列时,它最终会突出显示其旁边的以下 3 列。这是为什么?

答案1

这个答案解决了你的第一个问题:

假设您在列中有一个 id A,想要在列中构建公式B,并将数据存储在例如范围内C1:E5;示例数据和结果:

ID 修订 P01 P02 P03
1 P02 X X
2 P02 X
3 P01 X
4 P03 X X
5 P03 X

在这种情况下,您可以例如将INDEX()和合并MATCH()如下,用于标题下方的第一行(即单元格B2并将其向下拖动):

=INDEX($C$1:$E$1, 1, MATCH("x", C2:E2, 1))

此公式将修订版的标题作为数组(您最终想要返回)。假设您在每一行中构建公式,它始终使用第一行,并且应根据修订版中“x”的最后一个匹配返回列。

但是,只有当您的单元格中含有“x”时,这种方法才会有效。

更通用的方法看起来如下:

=INDEX($C$1:$E$1, 1, MAX(IF(C2:E2<>"", COLUMN(C2:E2)-COLUMN(C2)+1, 0)))

这种方法不是基于相应单元格中存在“x”这一事实,而是查找相应范围内的最后一个非空单元格,例如C2:E2。因此,您需要识别具有非空单元格的最后一列,并通过列 ID 和修订版(假设它们不计算在内)的数据偏移列数对其进行更正。基于此,您将返回相应的标题。

PS:如果没有进一步的细节(例如,屏幕截图等),就无法回答第二个问题。

答案2

对于第一个问题,如果您的 Excel 表如下所示:

示例工作表

使用以下公式并将范围替换C2:XFD2为您的数据范围。C2在我的示例中,是行数据开始的单元格,也是XFD2整个工作表的最后一个单元格:

=LOOKUP(2,1/(C2:XFD2<>""),C2:XFD2)

如果您的最后一次修订位于工作表的第一列,则可以将范围简单地指定为整行:

=LOOKUP(2,1/(1:1<>""),1:1)

对于您答案的第二部分,我无法提供帮助,因为我必须检查工作簿。

相关内容