次のようなランダムな順序の値を持つA
列があります
A column
2
3
4
2
5
6
4
3
4
最初に発生した特定の番号の行インデックスが必要です。私が数が4だと言うなら、返される値は3でなければなりません
また、最後に発生した特定の番号の行インデックスが必要です。たとえば、番号が3だとすると、返される値は8でなければなりません
私はVlookup
またはfind
関数がタスクを実行する必要があると考えていましたが、それらを整理することはできません。これらを手伝ってください
私の例では、3
しかし、適応するのは簡単です。
最初の発生を見つけるには、次を使用できます。
=MATCH(3,A:A,0)
最後のものを見つけるには、配列式を使用できます( Ctrl+Shift+Enter)
{=MAX(IF(A1:A10=3,ROW(A1:A10),0))}
MIN
を使用して最初の配列式に配列式を使用することもできますが、その価値は非常に複雑になることに注意してください。
こんにちは、マクロを使用してこれを行うことができます
次のコードを使用してください
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
コードの使用方法(マクロが初めての場合)
新しいExcelファイルを開く
Alt + F11を押します
新しいモジュールを挿入する
モジュールにコードを貼り付けます
Excelシートに戻り、ボタンを追加します
マクロ「FindNumbers」をボタンに割り当てます
Excel 2007または2010を使用している場合は、Excelを.xlsm形式で保存します
助けて
列A:列Aにデータを入力し、ボタンをクリックするか、マクロを実行します
ボタンを押すか、マクロを実行します
結果は次のようになります
列B:列Aに入力されたデータで一意の番号
列C:データの最初の出現
列D:データの最後の出現