programing

먼저 발생한 숫자의 행 색인을 찾다

cafebook 2023. 4. 19. 00:20
반응형

먼저 발생한 숫자의 행 색인을 찾다

있습니다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

코드 사용법?(매크로를 처음 접하는 경우)

  1. 새 Excel 파일 열기

  2. Alt + F11 키를 누릅니다.

  3. 새 모듈 삽입

  4. 코드를 모듈에 붙여넣습니다.

  5. Excel 시트로 돌아가 버튼을 추가합니다.

  6. 버튼에 'FindNumbers' 매크로 할당

  7. Excel 2007 또는 2010을 사용하는 경우 Excel을 .xlsm 형식으로 저장합니다.

  8. 도와 주세요.

  9. A열: A열에 데이터를 입력하고 버튼을 클릭하거나 매크로를 실행합니다.

  10. 버튼을 누르거나 매크로를 실행합니다.

결과는 이렇습니다.

열 B: 열 A에 입력된 데이터에 고유한 숫자

열 C: 첫 번째 데이터 발생

열 D: 마지막 데이터 발생

언급URL : https://stackoverflow.com/questions/8412389/find-a-row-index-of-a-number-that-occurred-first

반응형