다음과 같이 제공된 열에서 주어진 문자열의 마지막 모양을 찾기 위해 LOOKUP 함수를 사용하고 있습니다.
LOOKUP(A3;Runs!D3:D6;Runs!A3:A6)
그러나 벡터의 경계는 하드 코딩되어 있습니다. Runs!A3:A6. 이 값을 열의 데이터가 있는 마지막 셀에 동적으로 설정하고 싶습니다. 마지막 행 인덱스를 제공하는 다음 공식을 찾았습니다.
COUNTA(Runs!A:A)
이 다른 함수는 셀 참조(셀의 내용)를 제공하지만 이를 LOOKUP 수식과 병합할 수는 없는 것 같습니다.
INDIRECT("Runs!A"&COUNTA(Runs!A:A))
LOOKUP의 상한을 동적으로 설정하는 방법이 있습니까?
편집: 행 범위에 빈 행이 없습니다.
문안 인사
답변1
알겠습니다. 문제는 동적 범위가 LOOKUP 내에서 범위 사양으로 작동하도록 하는 것입니다. 거의 다 왔어요. 이 시도:
LOOKUP(A3;INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D));Runs!A3:A6)
답변2
offset() 함수가 문제를 해결해 줄 것입니다
Runs!A3:A6을 다음으로 바꾸세요.오프셋($A$3,0,0,COUNTA($A$3:$A$1000),1)
동적 정의 범위를 사용하면 좀 더 멋질 수 있습니다.http://support.microsoft.com/kb/830287
답변3
나는 결국 이 일을 하게 되었다. 귀하의 의견에 감사드립니다. fixer1234의 답변이 특히 유용했습니다. LOOKUP이 정확한 결과를 제공하지 않아서 INDEX/MATCH 쌍으로 변경했습니다. N/A 확인도 추가했습니다.
IF(ISNA(INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0))), "", INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0)))