행에서 마지막 두 번째 텍스트 값을 어떻게 반환합니까?

행에서 마지막 두 번째 텍스트 값을 어떻게 반환합니까?

누구든지 행의 마지막 두 번째 텍스트 값을 반환하는 Excel 수식을 말해 줄 수 있습니까?

마지막 텍스트 값에 대한 공식을 찾았 =INDEX(U2:Y2,MATCH(REPT("z",255),U2:Y2))지만 마지막 두 번째 값을 어떻게 구하는지 잘 모르시나요?

답변1

공식

다음은N끝에서부터 번째 텍스트 값입니다.

=IFERROR(INDEX(U2:Y2,LARGE(ISTEXT(U2:Y2)*COLUMN(U2:Y2),2)-COLUMN(U2)+1),"")

이 수식은 단지 가 아닌 Ctrl++ Shift를 사용하여 배열 수식으로 입력해야 합니다 . 양쪽 끝에 중괄호 { }가 나타나면 올바르게 수행한 것입니다.EnterEnter


작동 방식

=IFERROR(...,"")수식의 나머지 부분에 오류가 있으면 공백이 반환됩니다. 최소한 값이 없으면 `#VALUE!# 오류가 발생합니다.N범위의 텍스트 값입니다.

INDEX(U2:Y2,...)배열을 가져와 in 내의 일부 값을 반환합니다. INDEX(U2:Y2,4)이 경우에는 배열의 4번째 요소를 반환합니다 X2.

LARGE(..,2)일부 배열을 가져와 해당 배열 내에서 두 번째로 큰 값을 반환합니다. 2을(를) 얻으려면 다른 번호로 변경하세요.N번째로 큰 항목입니다. 이 SMALL함수는 유사하지만 다음을 반환합니다.N가장 작은대신 가치를 부여하세요.

ISTEXT(U2:Y2)*COLUMN(U2:Y2)배열 수식으로 입력하게 하는 부분입니다. 이 함수는 각 셀에 텍스트 값이 포함되어 있는지 여부에 대한 / 값 ISTEXT배열을 반환합니다 . 예를 들어, 이는 . 이 함수는 열 번호를 반환합니다. 이 경우에는 가 됩니다 . 이 둘을 곱한다( , ). 내 예에서 최종 배열은 . 이것을 이전의 수식에 연결하면 두 번째로 큰 값이 반환됩니다 .TRUEFALSE{TRUE,TRUE,FALSE,FALSE,TRUE}COLUMN{21,22,23,24,25}TRUE=1FALSE=0{21,22,0,0,25}LARGE22

-COLUMN(U2)+1열 22에서 시작하지만 배열에 열이 5개만 있다는 INDEX사실을 고려하여 수식 에 연결되는 값을 조정하기만 하면 됩니다 . 우리는 and 가 아닌 and U2:Y2사이의 값을 반환하려고 합니다 .152125


범위에 다음 데이터가 있다고 가정해 보겠습니다 U2:Y2.

Hello | World | meep | 5 | boop

마지막에서 두 번째 텍스트 값이므로 meep수식이 어떻게 작동하는지 살펴보겠습니다. 한 번에 한 단계씩 계산을 작성하겠습니다. 동일한 순서가 아닐 수도 있지만 "수식" 리본의 "수식 평가"를 사용하면 이와 유사한 실행 과정을 볼 수 있습니다.

=IFERROR(INDEX(U2:Y2,LARGE(ISTEXT(U2:Y2)*COLUMN(U2:Y2),2)-COLUMN(U2)+1),"")
=IFERROR(INDEX(U2:Y2,LARGE(ISTEXT(U2:Y2)*COLUMN(U2:Y2),2)-21+1),"")
=IFERROR(INDEX(U2:Y2,LARGE(ISTEXT(U2:Y2)*COLUMN(U2:Y2),2)-20),"")
=IFERROR(INDEX(U2:Y2,LARGE({TRUE,TRUE,TRUE,FALSE,TRUE}*COLUMN(U2:Y2),2)-21),"")
=IFERROR(INDEX(U2:Y2,LARGE({TRUE,TRUE,TRUE,FALSE,TRUE}*{21,22,23,24,25},2)-21),"")
=IFERROR(INDEX(U2:Y2,LARGE({21,22,23,0,25},2)-21),"")
=IFERROR(INDEX(U2:Y2,23-21),"")
=IFERROR(INDEX(U2:Y2,2),"")
=IFERROR(INDEX({"Hello","World","meep",5,"boop"},2),"")
=IFERROR("meep","")
="meep"

답변2

귀하의 방법론이 가장 효율적이지 않을 수 있다고 생각합니다. 하지만 이미 달성한 것을 사용하여 기존 MATCH,하나를 빼다검색할 새 경계를 제공하고 해당 새 영역의 마지막 텍스트를 반환합니다. 이 OFFSET방법을 사용하면 다음과 같이 새로운 제한으로 검색 영역을 다시 정의할 수 있습니다.

=INDEX(U2:Y2,MATCH(REPT("z",255),OFFSET(U2,0,0,1,MATCH(REPT("z",255),U2:Y2)-1)))

답변3

=INDEX(D7:P7,MATCH(REPT("z",255),D7:P7)-1)

관련 정보