
Excel에서 현재 행 앞에 특정 문자열이 포함된 마지막 행 번호를 반환하는 열 B(아래 예)를 채우는 데 사용할 수 있는 Excel 수식이 있습니까?
데이터가 연속되어 있지 않습니다.
예를 들어 데이터는 다음과 같습니다.
| A (value) B (prev recent instance)
----------------------------------------------
1 | Mike
2 | John
3 | Mike 1
4 | Tony
5 | Mike 3
6 | John 2
그런 다음 C열이 가장 빠른 인스턴스를 표시하도록 확장하고 싶습니다.
이 질문과 매우 유사한 것 같습니다. 특정 데이터가 포함된 범위 내 셀의 마지막 행 번호를 반환하는 Excel 수식은 무엇입니까?그러나 해당 질문과 답변에는 데이터가 연속되어 있어야 합니다.
편집하다: 답변이 워크시트 공식이었으면 좋겠지만 VBA를 통해 구현하는 것이 더 적절하다고 생각한다면 각 접근 방식의 장단점과 함께 답변에도 포함해 주세요.
답변1
가장 빠른 인스턴스를 찾으려면 아래 공식을 참조하세요.
=LOOKUP(2,1/(A:A=A2),ROW(A:A))
이해를 돕기 위해 아래 스크린샷을 첨부합니다.
답변2
데이터가 A1에서 시작한다고 가정하고 B2에서 이 "배열 수식"을 사용해 보세요.
=IF(COUNTIF(A$1:A1,A2),MATCH(2,1/(A$1:A1=A2)),"")
CTRL+SHIFT+ENTER로 확인하고 복사했습니다.
또는 이 비 어레이 버전을 사용할 수 있습니다
=IF(COUNTIF(A$1:A1,A2),MATCH(2,INDEX(1/(A$1:A1=A2),0)),"")
Excel 2007 이상에서는 IFERROR를 사용하여 단순화할 수 있습니다. 즉, 배열 버전은
=IFERROR(MATCH(2,1/(A$1:A1=A2)),"")
C 열의 "첫 번째 인스턴스" 행에 대해 아래에 복사된 C1에서 이 공식을 시도해 보세요.
=MATCH(A1,A$1:A1,0)
참고: 수식은 엄격하게 "행 번호"를 반환하지 않지만 데이터의 상대 행 번호를 반환합니다. 즉, 데이터의 행 1은 1을 반환합니다.