XLS 셀에서 마지막 공간을 찾아야합니다


17

텍스트 값이 포함 된 Excel 시트가 있습니다 (예 : A1 : "텍스트입니다"). 마지막 공백 문자의 위치를 ​​찾아야합니다. 원하는 결과를 얻을 수있는 Excel 공식이 있습니까? 나는 찾기와 검색을 시도했지만 이것들은 왼쪽에서 시작합니다. 필요한 것은 오른쪽에서 시작하는 것입니다.


대략 같은 빈티지의 교차 사이트 복제 : stackoverflow.com/q/18617349
Mathieu K.

답변:


28

공백 값으로 "공백"을 의미하고 XLS로 Excel을 의미하는 경우이 수식을 사용할 수 있습니다 (마지막 공간을 찾으려는 테스트가에 있다고 가정 A1).

=FIND("☃",SUBSTITUTE(A1," ","☃",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))

세 부분으로 나눌 수 있습니다.

  • LEN(A1)-LEN(SUBSTITUTE(A1," ",""))당신에게 공간의 수를 제공, 현실을 부르 자 x,
  • SUBSTITUTE(A1," ","☃",[x])x눈사람으로 th 공간 (마지막 공간) 을 대체합니다 .
  • FIND("☃",[...])눈사람의 위치를 ​​알려줄 것입니다. 마지막 공간의 위치입니다.

완벽하게 작동합니다. 감사. 설명에도 불구하고 왜 효과가 있었는지 알아내는 데 시간이 걸렸습니다. :
Dheer

5
훌륭하고 자세한 답변과 가장 창의적인 대체 캐릭터는 +1입니다.
Doug Glaency

LibreOffice Calc와 Google 스프레드 시트에서도 작동합니다.
Mathieu K.

8

다른 방법이 있습니다 .A1에는 모든 문자가 허용됩니다 (눈사람조차도!)

=LOOKUP(2^15,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))))

FIND 검색의 시작 위치를 정의하는 세 번째 인수가 있습니다. 정수 값 1에서 n까지의 배열 (여기서 n은 A1의 길이 임)을 해당 매개 변수에 적용하면 마지막 숫자가 마지막 공간.

LOOKUP그런 다음 해당 배열에서 발견 될 수있는 값보다 큰 값을 검색하여 해당 숫자를 추출합니다.이 경우 마지막 숫자 를 찾습니다

에서 Excel 2010이상 당신은 또한 사용할 수있는 AGGREGATE다음과 같은 기능을

=AGGREGATE(14,6,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))),1)

FINDAGGREGATE에러를 무시하면서 배열에서 가장 큰 값을 얻는 마지막 값으로 14를 사용 하고 마지막 으로 1을 사용하여 이전과 동일한 배열을 반환합니다. [6]


1
잘 작동합니다. 얼마 전에 개발자 였지만 여전히 INDIRECT의 작동 방식과 이유를 파악할 수 없습니다. :)
Dheer

1
A1에 12자가 있다고 가정하면이 부분 "1:"&LEN(A1)은 "1:12"로 평가됩니다. 이는 ROW가 처리 할 수없는 문자열이지만 INDIRECT는 문자열을 ROW 처리 할 수 있는 유효한 참조로 변환 하므로 ROW (1:12)는 {1 ; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12}
배리 후디니

clarif 주셔서 감사합니다. 지금 어떤 의미가 있습니다. 이는 Find 자체가 배열과 함 께 작동하고 모든 값에 대해 시작 위치로 실행됨을 의미합니다.
Dheer

즉 FIND는 예를 들어, A1이 포함 된 경우 배열, 반환, 바로 barry larry houdini다음이 배열 반환 찾기 {6;6;6;6;6;6;12;12;12;12;12;12;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}및 / AGGREGATE가에서 마지막 / 최대 숫자 값, 즉 걸릴 것 또는 12 및 조회
배리 후디니

참고 : 이것은 LibreOffice Calc에서 작동합니다. Google 스프레드 시트에서는 작동하지 않고 첫 번째 항목을 찾습니다.
Mathieu K.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.