먼저 발생한 숫자의 행 색인을 찾다
있습니다A
다음과 같은 랜덤 순서로 값이 있는 열
A column
2
3
4
2
5
6
4
3
4
먼저 발생한 특정 번호의 행 인덱스를 원합니다.4라고 하면 반환되는 값은 3이라고 합니다.
또한 마지막으로 발생한 특정 번호의 행 인덱스를 원합니다.예를 들어 번호가 3이라고 하면 반환되는 값은 8이어야 합니다.
생각해 봤는데Vlookup
또는find
함수가 작업을 수행해야 하지만 순서대로 정렬할 수 없습니다.이것들 좀 도와주세요
이 예에서는 번호를 찾고 있습니다.3
적응하기 쉬워요.
첫 번째 발생을 찾으려면 다음을 사용합니다.
=MATCH(3,A:A,0)
마지막 수식을 찾으려면 배열 수식을 사용합니다(++ShiftEnter로 유효화).
{=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: 마지막 데이터 발생
언급URL : https://stackoverflow.com/questions/8412389/find-a-row-index-of-a-number-that-occurred-first
'programing' 카테고리의 다른 글
Pip - 시작 관리자에서 치명적인 오류: ''을(를) 사용하여 프로세스를 만들 수 없습니다. (0) | 2023.04.19 |
---|---|
"git merge - s our"의 "they" 버전이 있습니까? (0) | 2023.04.19 |
WPF 라벨에 점 자동 클리핑 및 추가 (0) | 2023.04.19 |
POST 메서드를 사용한Swift에서의 HTTP 요구 (0) | 2023.04.19 |
목표-C: 경로 문자열에서 파일 이름 추출 (0) | 2023.04.19 |