find一个首先发生的号码的行索引
我有A
列有像随机顺序的值
A column 2 3 4 2 5 6 4 3 4
我想要首先发生的特定数字的行索引。 说如果我说数字是4返回的值应该是3
我也想要一个特定的号码行索引last.say如果我说数字是3,那么返回的值必须是8
我正在想Vlookup
或find
function必须做的任务,但无法把他们的顺序。请用这些帮助我
我的例子是寻找数字3
但很容易适应。
要find第一个事件,可以使用:
=MATCH(3,A:A,0)
要find最后一个,可以使用数组公式(使用Ctrl + Shift + Enter进行validation)
{=MAX(IF(A1:A10=3,ROW(A1:A10),0))}
请注意,您也可以使用MIN
的第一个数组公式相当复杂的价值。
嗨,朋友你可以使用macros来做到这一点
使用下面的代码
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
如何使用代码? (如果你是macros观的新手)
-
打开一个新的Excel文件
-
按下Alt + F11
-
插入一个新的模块
-
将代码粘贴到模块中
-
回到Excel表格并添加一个button
-
将macros“FindNumbers”分配给button
-
如果您使用的是Excel 2007或2010,请以.xlsm格式保存excel
-
帮帮我
-
A栏:在列A中input数据,然后单击button或运行macros
-
按下button或运行macros
你的结果会是这样的
列B:在列A中input的数据中唯一的数字
C列:首次发生数据
D列:最后一次出现的数据