找到首先出现的数字的行索引

时间:2011-12-07 08:38:29

标签: excel excel-formula

我的A列具有随机顺序的值,如

       A column
           2
           3
           4
           2
           5
           6
           4
           3
           4

我想要首先出现的特定数字的行索引。如果我说数字是4,则返回的值应为3

我还想要一个特定数字的行索引发生last.say如果我说数字是3那么返回的值必须是8

我在想Vlookupfind函数必须完成任务但无法按顺序排列。请帮助我解决这些问题

2 个答案:

答案 0 :(得分:41)

我的示例正在查找数字3,但很容易适应。

要查找第一次出现,您可以使用:

=MATCH(3,A:A,0)

要查找最后一个,您可以使用数组公式(使用 Ctrl + Shift + 输入进行验证)

{=MAX(IF(A1:A10=3,ROW(A1:A10),0))}

请注意,你也可以使用MIN的第一个数组公式,但它的价值会非常复杂。

答案 1 :(得分:2)

你好朋友你可以用宏来做这个

使用以下代码

Sub FindNumbers()

    Sheet1.Range("B:D") = ""
    Application.ScreenUpdating = False
    tot = Sheet1.Range("A1048575").End(xlUp).Row
    i = 1
    k = 1
    m = 1
    n = 1
    o = 1
    p = 1

    For i = 1 To tot
            c = Application.WorksheetFunction.CountIf(Sheet1.Range("B:B"), Sheet1.Range("A" & i).Value)
            If c <= 0 Then
            Sheet1.Range("B" & k).Value = Sheet1.Range("A" & i).Value
            k = k + 1
            End If
    Next

    tots = Sheet1.Range("B1048575").End(xlUp).Row

    For m = 1 To tots
        For n = 1 To tot
            If Sheet1.Range("B" & m).Value = Sheet1.Range("A" & n).Value Then
            Sheet1.Range("D" & m).Value = n
            End If
        Next
    Next

    For o = 1 To tots
        For p = 1 To tot
            If Sheet1.Range("B" & o).Value = Sheet1.Range("A" & p).Value Then
            Sheet1.Range("C" & o).Value = p
            p = tot
            End If
        Next
    Next

    Application.ScreenUpdating = True

End Sub

如何使用代码? (如果您不熟悉宏)

  1. 打开一个新的Excel文件

  2. 按Alt + F11

  3. 插入新模块

  4. 将代码粘贴到模块中

  5. 返回Excel工作表并添加一个按钮

  6. 将宏“FindNumbers”分配给按钮

  7. 如果您使用的是excel 2007或2010,则以.xlsm格式保存Excel

  8. 帮助

  9. A栏:在A栏输入您的数据,然后点击按钮或运行宏

  10. 按按钮或运行宏

  11. 您的结果将是这样的

    B栏:在A栏中输入的数据中唯一的数字

    C栏:首次出现数据

    D栏:最后出现的数据