vlookup을 사용하여 테이블의 마지막 값을 반환하는 방법은 무엇입니까?

vlookup을 사용하여 테이블의 마지막 값을 반환하는 방법은 무엇입니까?

예를 들어, Table1(이것을 이름으로 정의함)이라고 부를 내 테이블은 새 데이터가 들어오면 추가됩니다. vlookup을 사용하여 맨 아래에 있는 최종(마지막) 데이터 포인트의 두 번째 열 값을 검색하려면 어떻게 해야 합니까? Table1의?

답변1

첫 번째 열은 숫자인가요, 아니면 텍스트인가요? 범위 조회 옵션을 사용하여 테이블의 값보다 큰 값을 검색할 수 있습니다. 첫 번째 열에 단어가 포함되어 있으면 다음을 시도해 보세요.

=VLOOKUP("ZZZZZ", Table1, 2, TRUE)

또는 첫 번째 열이 5자리 숫자인 경우 다음을 시도해 보세요.

=VLOOKUP("99999", Table1, 2, TRUE)

그리고 이 방법도 작동하지만 속도가 느리다는 생각이 들었습니다. Table1의 첫 번째 열을 Table1Col1로 정의합니다.

=VLOOKUP(MAX(Table1Col1), Table1, 2, TRUE)

답변2

선택한 열을 동적으로 업데이트하려면 MATCH() 수식을 사용하여 col_index_num 값을 채울 수 있습니다. 예를 들어:

=VLOOKUP("d", Table1, 2, FALSE)

두 번째 열의 값을 반환합니다. 반면:

=VLOOKUP("d",Table1[#All],MATCH("value2",Table1[#Headers],0),FALSE)

헤더가 value2인 열의 값을 반환합니다. 더욱 동적으로 다음과 같이 작성할 수 있습니다.

=VLOOKUP("d", Table1, MATCH(Table1[[#Headers],[value2]],Table1[#Headers],0), FALSE)

테이블 열 헤더의 이름을 바꾸면 자동으로 업데이트됩니다.

답변3

=VLOOKUP(A2,Table1,2,MAX(Table1Col2))

설명: =VLOOKUP(**Data being looked up**,**Name of Table or data range**,**column of data being looked up**,MAX(**Name or data range of data being looked up**))

lookup_value와 일치하는 행의 마지막 값을 다시 가져옵니다.

답변4

주로 현재 검색자에게 현대적인 답변을 제공하기 위해 답변합니다("현대" = 2021).

당신은 사용합니다 XLOOKUP(). 이는 완벽한 대체품이 아니며 일부 상황에는 적합하지 않습니다. 그러나 이것은 간단한 것이며 베타 릴리스는 수행을 위해 재설계되었습니다.

흥미로운 특징은 끝부터 시작 부분까지 검색하는 매개변수가 있다는 것입니다. 그래서... 슬램덩크입니다.

하지만 답변을 읽어보니 질문에 게시되었을 때 효과가 있었을 용어에 대한 확실한 답변이 없다는 것을 알았습니다. 중간 답변은 질문을 전혀 다루지 않으며 세 번째 답변은 n번째 수준까지 허위입니다. TRUE입력만 하면 TRUE(또는 0선호하는 경우) 정확히 동일한 작업을 수행할 때 부울 값을 생성하기 위해 멋진 것을 사용합니다 . 응답자가 뭔가 화려해 보이고, 허식적인 것이 가치 있는 것처럼 보이기를 바랐다는 인상을 거의 줍니다. 좋아요. 그리고 그것은 틀리지 않은 대답을 줄 수 있지만 그것은 단지 우연이라는 점에서 옳지 않습니다. 실패의 주요 모드는 원하는 값이 범위의 절대적으로 마지막 항목일 때이기 때문에 괜찮은 기회입니다. 그러나 이것이 특히 날짜 기반일 수 있다는 점을 고려하면 꽤 괜찮은 확률이 발생할 수 있습니다.

첫 번째 답변은 시도해 볼 수 있는 몇 가지 실용적인 사항을 제공하며, 데이터에 따라 그 중 하나 또는 그로부터 영감을 받은 것이 귀하에게 적합할 수 있습니다. 사기꾼에게서 영감을 받아 꽤 많은 사람들에게 결과에 대한 강한 자신감을 심어주고 상사가 실패에 대해 소리칠 때 그들을 당황하게 만드는 세 번째 것과는 다릅니다.

그러나 이는 단지 실용적인 것일 뿐 반드시 해결책은 아닙니다. 인터넷의 "어디서나" 사용할 수 있는 LOOKUP()영리한 방법으로 이에 대한 표준 접근 방식이 있습니다. 하지만 훨씬 더 직접적이고 작동 방식을 이해하기 쉬운 것은 어떻습니까? (대부분의 경우 이 LOOKUP()방법은 비록 영리하고 매우 영리하며 실제로 매우 간단하지만 처음 보는 단계에서 당황스러워서 쉽게 이해할 수는 있지만 결코 깨닫지 못합니다.)

INDEX()함수를 사용하면 표를 거꾸로 뒤집을 수 있으므로 수식의 나머지 부분에 표시되는 첫 번째 행은 원래("물리적") 범위의 마지막 행이 됩니다. 이는 행 매개변수에 대해 가장 높은 행 번호(가장 높은 "인덱스")부터 시작하여 1로 떨어지는 일련의 숫자를 생성하는 항목을 지정하여 수행됩니다.

그것은 2012/2013년에 일련의 행 번호를 생성하는 영리한 트릭을 사용하여 수행되었습니다. 즉, ROW(1:100)1, 2, 3, ... 98, 99, 100의 시퀀스를 제공합니다. 이를 반대로 하려면 다음을 사용할 수 있다고 생각할 것입니다 ROW(100:1). Excel은 ROW(1:100)당신이 원하든 원하지 않든 당신의 어리석은 실수를 유용하게 "수정"합니다 . 그걸 극복할 방법이 없어요. 그러나 사용된 가장 높은 행 번호를 알고 있고 문제가 되지 않는다면 여기에 1을 더할 수 있습니다. 즉, 이 예에서는 100 + 1이 됩니다. 그런 다음 Excel에서 제공하는 시퀀스를 빼면 됩니다. 101 - 1, 100 - 2, 100 - 3, ...이 있으므로 100, 99, 98, ...을 101 - 100 또는 1로 줄입니다.

이를 행 매개변수에 사용하여 INDEX()행을 마지막에서 처음으로 반전시킵니다.

에 대한 열의 경우 에 대한 INDEX()일반적인 경험을 뛰어 넘어 생각해야 합니다 VLOOKUP(). 일반적으로 많은 열이 있을 수 있는 테이블/범위를 제공합니다. 아마도 A2:W900일 겁니다. A열을 검색하여 T열(또는 20열)에서 항목을 찾으려고 합니다. 그래서 당신은 다음과 같은 것을 가질 수 있습니다 VLOOKUP("cow",A2:W900,20,false). 글쎄, INDEX()주어진 범위의 모든 열을 사용하는 대신 특정 열만 지정하기 위해 약간의 트릭을 사용할 수 있습니다: 배열 상수.

Array ConstantsExcel에 값의 배열을 제공하는 방법입니다. 세 번째 매개변수인 열 매개변수의 경우 {"a","cow",13,999,"fisherman","circu"}. So in this example, you want to have columns A and T, or 1 and 20, so you'd giveINDEX() {1,20}` 와 같습니다 .

이 모든 것의 요점은 INDEX()실제 테이블 대신 수식에 사용할 가상 테이블을 구축한다는 것입니다. 가상 테이블에는 2-900행과 AW열이 없습니다. 900행부터 2행까지, A열과 T열만 있습니다. 해당 함수는 예를 들어 다음과 같습니다.

INDEX( A2:W900, 900-ROW(1:899), {1,20} )

(2행부터 900행까지 사용하므로 900행이 아니라 899행만 있습니다. 따라서 Excel 행 2는 범위의 "인덱스" 1이고 Excel 행 900은 인덱스 899입니다. 899 + 1 = 900이므로 900을 사용합니다. 901이 아닙니다. 그러면 공식의 숫자가 "의미가 있습니다." 첫 번째 하드 드라이브를 "드라이브 1"이 아닌 "드라이브 0"이라고 부르는 것과 같습니다.)

이제 A열과 T열만 있는 가상 테이블이 있습니다. 처음에는 900행이고 마지막으로 행 2로 내려갑니다. 이것이 VLOOKUP(). 따라서 "cow"라는 단어를 검색하고 정확히 일치하는 항목을 찾는 전체 수식은 END에서 시작하여 처음으로 다시 작업하면 다음과 같습니다.

=VLOOUP( "cow", INDEX( A2:W900, 900-ROW(1:899), {1,20} ), 2, false )

"실제" 테이블의 데이터는 2-900행이므로 데이터를 900-2행으로 반전시킨 테이블을 사용하여 마지막 일치 항목을 찾습니다. 그리고 23개의 데이터 열을 모두 사용하는 것이 아니라 IN에서 조회하는 열과 FROM에서 데이터를 가져오는 열 두 개만 사용합니다. 열이 두 개뿐이므로 답변을 반환할 열은 항상 EASY입니다. 열 2입니다. "false"는 있는 경우 정확한 일치를 보장합니다.

그리고 이것은 항상 작동합니다.

여담이지만, 우리가 사용한 배열 상수는 {1,20}... 그 값을 반대로 하면 어떻게 될까요? 에서와 같이 {20,1}. 열의 순서를 반대로 바꿉니다. 따라서 를 사용하고 싶지만 VLOOKUP()이 예의 조회 열은 T 열이고 A 열의 결과를 원하는 경우 운이 좋지 않을 것입니다. (제가 미 해군 원자력 프로그램에 참여하던 시절의 오래된 "불행한 사고"입니다. 맙소사, "OOL" 사고... 우리는 몇 년 일찍 "LOL"을 만들 뻔했지만... 그냥... 그러지 못했습니다. t... 글쎄, 원자로 발전소 사고는 웃을 일이 아니었을 것 같으니 최선을 다해, 응?) 검색 열을 사용하려면 결과 열의 왼쪽에 있어야 합니다 VLOOKUP(). 부에노는 아닙니다!

그러나 열을 반대로 바꾸는 가상 테이블을 생성하므로 조회 열은 결국 갑자기 왼쪽에 표시됩니다! 부에노!

게다가 열(또는 행, 그러나 일반적으로 열)의 배열 상수는 일부 숫자만 사용할 수 있고 순서에 상관없이 사용할 수 있으며 원하는 경우 두 번 이상 사용할 수 있습니다.

SEQUENCE()"현대적인 방법" 기억하기: 요즘에는 899에서 1까지 역순을 직접 생성하는 데 사용할 수 있습니다 .

관련 정보