excel 查找包含数据的最后一列并返回该列的标题

t5fffqht  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(232)

我正在使用Apache OpenOffice calc(v4.1.13),希望搜索一行,找到最后一行非空单元格,并返回该行的列标题。请注意,单元格包含文本,行中的一些单元格为空。
this post中,他们使用=LOOKUP(2,1/(H228:S228<>""), H1:S1)来返回最后一行的列标题。我首先将逗号改为分号以使用OpenOffice,然后更改行值以匹配我的范围,从而获得以下内容:=LOOKUP(2;1/(F4:I4<>"");F1:I1),但我收到#DIV/0错误。
如果我在F4:I4中的空白单元格中放入虚拟数据,#DIV/0错误就会消失,函数也会工作。
据我所知,在Excel中,如果行中的某些单元格为空,则此公式将起作用。但在OpenOffice Calc中,情况似乎并非如此,因为我得到了#DIV/0错误。如何在Calc中使此公式起作用?

p3rjfoxz

p3rjfoxz1#

改编自https://ask.libreoffice.org/t/return-the-last-value-in-a-column/53646

=LOOKUP(2;1/ISNUMBER(H228:S228);H228:S228)

下面是该帖子的解释:
查找()强制其参数进入数组模式。在此ISNUMBER中(...)返回值为1和0的数组,然后返回1/ISNUMBER(...)产生一个由1和#DIV/0错误值组成的数组。LOOKUP()具有默认忽略此类数组中错误值的行为,因此查找值2将返回最后一个值1的位置。在这种情况下,查找1也同样有效。但是在内部比较更多的元素以找到最后的匹配值,而对于值2,搜索进行完全的二分搜索以排除数据块,这更快。

编辑

这适用于文本和数字。

=LOOKUP(2;1/NOT(ISBLANK(H228:S228));H228:S228)

编辑2

下面是一个针对AOO的解决方案,改编自https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=66962

=LOOKUP("ZZZ";H228:S228)
rjee0c15

rjee0c152#

Jim K已经非常接近了,我已经采纳了他的建议,并将其发布在这里。下面的公式查找X行中最后一列的文本(在本例中为9),并返回同一列的Y行(在本例中为#1,列标题)。我可以确认以下内容:

  • 与Apache OpenOffice配合使用
  • 在行中有空单元格时有效

=LOOKUP("ZZZ";F9:ZZ9;F1:ZZ1)
非常感谢那些帮助我们的人!

相关问题