在 Excel 中查找给定行中的最后一个非零值

在 Excel 中查找给定行中的最后一个非零值

我有 10 行以下形式的数据:

00004
04000
03000
06000
00500
00001

我希望能够做的是获取每一行中的最后一个非零值并将它们返回到各自的行旁边,如下所示:

000044
040004
030303
066006
055005
002011

请注意,上面的每个值都在单独的单元格中。最好的方法是什么?

答案1

您可以使用链式公式,首先将所有“0”替换为空,然后取最右边的字符,例如
=RIGHT(SUBSTITUTE(cell1&cell2&cell3...,"0",""),1)

答案2

使用以下数组公式:

=INDEX(A1:E1,MATCH(2,IF(A1:E1<>0,1)))

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。如果操作正确,Excel 将会覆盖{}公式。

在此处输入图片描述

答案3

使用 A1:E1 中的数据(假设所有值都是整数),您可以使用以下通常输入的公式:

F1: =LOOKUP(2,1/A1:E1,A1:E1)

并向下填充。

如果 LOOKUP 函数找不到 lookup_value,则该函数将匹配 lookup_vector 中小于或等于 lookup_value 的最大值。1/a1:e1将始终返回小于 2 的值或DIV/0错误。因此,该函数将返回最后一个非零值,或者,如果它们都是零,则返回错误NA

在此处输入图片描述

相关内容