在 Excel 中,你可以使用公式和函数来获取行中第一个和最后一个非零单元格的位置。以下是如何实现这一目标的详细步骤。
假设你的数据在第1行,从A1到Z1。你可以使用以下数组公式来获取第一个非零单元格的位置:
=MIN(IF(A1:Z1<>0, COLUMN(A1:Z1)))
这是一个数组公式,因此在输入公式后需要按 Ctrl + Shift + Enter
而不是单独按 Enter
。这样,Excel 会将公式作为数组公式处理。
同样,假设你的数据在第1行,从A1到Z1。你可以使用以下数组公式来获取最后一个非零单元格的位置:
=MAX(IF(A1:Z1<>0, COLUMN(A1:Z1)))
这也是一个数组公式,因此在输入公式后需要按 Ctrl + Shift + Enter
。
假设你的数据在第1行,从A1到Z1,如下所示:
A1: 0, B1: 0, C1: 5, D1: 0, E1: 3, F1: 0, ..., Z1: 0
Ctrl + Shift + Enter
,结果应该是 3
,因为第一个非零单元格在C列(第3列)。Ctrl + Shift + Enter
,结果应该是 5
,因为最后一个非零单元格在E列(第5列)。如果你更喜欢使用 VBA(Visual Basic for Applications)来实现这一功能,可以使用以下代码:
Function FirstNonZeroCell(rng As Range) As Long
Dim cell As Range
For Each cell In rng
If cell.Value <> 0 Then
FirstNonZeroCell = cell.Column
Exit Function
End If
Next cell
FirstNonZeroCell = -1 ' 如果没有找到非零单元格,返回 -1
End Function
Function LastNonZeroCell(rng As Range) As Long
Dim cell As Range
For Each cell In rng
If cell.Value <> 0 Then
LastNonZeroCell = cell.Column
End If
Next cell
If LastNonZeroCell = 0 Then LastNonZeroCell = -1 ' 如果没有找到非零单元格,返回 -1
End Function
你可以在 Excel 中按 Alt + F11
打开 VBA 编辑器,插入一个新模块,然后将上述代码粘贴进去。然后你可以在 Excel 中使用这些自定义函数:
=FirstNonZeroCell(A1:Z1)
=LastNonZeroCell(A1:Z1)
这些函数将返回第一个和最后一个非零单元格的位置。
领取专属 10元无门槛券
手把手带您无忧上云