우선, PeterH의 대답 이 가장 간단하고 이해하기 쉽다고 말하고 싶습니다 . (내 선호는 RSI를 피하는 데 도움이되는 두 개의 적은 문자를 입력 하는 FIND()
대신 사용 하는 것이지만 SEARCH()
;-))
MID()
, LEFT()
또는을 사용 하지 않고 이름의 원하지 않는 부분을 제거하는 RIGHT()
데 사용하는 대체 대답 REPLACE()
은 다음과 같습니다.
=REPLACE(REPLACE(A1,FIND(" ",A1)+3,LEN(A1),""),3,FIND(" ",A1)-2,"")
설명:
내부 REPLACE(A1, FIND(" ",A1)+3, LEN(A1), "")
는 성의 세 번째 문자부터 문자를 제거하고 외부 는 첫 번째 이름의 세 번째 문자에서 공백을 포함하여 문자를 제거합니다.REPLACE(inner_replace, 3, FIND(" ",A1)-2, "")
부록 1 :
위의 공식은 단일 중간 이름을 허용하도록 조정할 수도 있습니다.
=REPLACE(REPLACE(A1,IFERROR(FIND(" ",A1,FIND(" ",A1)+1),FIND(" ",A1))+3,LEN(A1),""),3,IFERROR(FIND(" ",A1,FIND(" ",A1)+1),FIND(" ",A1))-2,"")
대체하여 FIND(" ",A1)
함께 IFERROR(FIND(" ",A1,FIND(" ",A1)+1), FIND(" ",A1))
.
FIND(" ", A1, FIND(" ",A1)+1)
두 번째 공백을 찾거나 (첫 번째 공백 이후 공백 검색을 시작하여) 그렇지 않으면 오류가 발생합니다. 두 번째 공백이 없으면 첫 번째 공백을 찾습니다.
IFERROR(find_second_space, FIND(" ",A1))
이 긴 버전은 여러 개의 중간 이름을 허용합니다.
=REPLACE(REPLACE(A1,FIND("§",SUBSTITUTE(A1," ","§",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+3,LEN(A1),""),3,FIND("§",SUBSTITUTE(A1," ","§",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-2,"")
이 경우 FIND(" ",A1)
에는로 대체됩니다 FIND("§", SUBSTITUTE(A1," ","§",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))
.
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
공백 수를 계산합니다. 마지막 공백을로 바꿉니다 . 마지막 공간을 찾는 것과 동일한 첫 번째 를 찾습니다 .
SUBSTITUTE(A1, " ", "§", count_of_spaces)
§
FIND("§", last_space_replaced_string)
§
( §
물론, 전체 이름 문자열에 존재하지 않는 문자로 대체 될 수 있습니다 CHAR(1)
. 더 일반적이고 안전한 대안은을 사용하는 것 입니다.)
물론 BruceWayne의 답변 은 여러 개의 중간 이름을 허용하는 가장 간단하고 이해하기 쉬운 솔루션입니다. 잘했다. 다른 답변을 게시 할 때까지는 ;-)입니다.
부록 2 :
모든 솔루션은 다음 IFERROR()
과 같이 함수 내에 래핑하여 단일 이름의 경우에만 적용 할 수 있습니다 (4 개의 문자 결과가 필요한 경우) .
=IFERROR(solution, alternate_formula)
위의 일반적인 경우는 공식이며 특정 솔루션을보다 효율적으로 수정할 수 있습니다. 예를 들어, 단일 이름의 경우 첫 두 글자를 마지막 두 글자와 결합해야하는 경우 PeterH의 답변 을 다음과 같이보다 효율적으로 조정할 수 있습니다.
=LEFT(A1,2)&MID(A1,IFERROR(SEARCH(" ",A1)+1,LEN(A1)-1),2)
단일 문자 이름 또는 이니셜 (공백 또는 점은 두 번째 문자로 허용되지 않는다고 가정)을 허용하기 위해 다음과 같은 솔루션을 사용할 수 있습니다.
=SUBSTITUTE(SUBSTITUTE(solution, " ", single_char), ".", single_char))
단일 문자는 이름으로 하드 코딩되거나 계산 될 수 있습니다. 또는 ""
공백이나 점을 제거하는 데 사용 하십시오.
당신이 경우 마지막으로, 정말 전체 이름이 단일 문자 인 경우에 대한 수용에 필요한 전용 (!), 단지 공식과 전용 단일 이름을 바꿈 다른 IFERROR()
. (물론, 대체 공식이 그 특별한 경우를 처리하지 않는다고 가정하십시오.)
부록 3 :
마지막으로 (no, really * ;-)) 여러 연속 및 / 또는 선행 / 후행 공백을 수용하려면 TRIM(A1)
대신을 사용하십시오 A1
.
* 나는 T 씨와 같은 한 글자 성의 경우를 독자들을위한 연습으로 남겨 둘 것이다.
힌트: =solution &IF(MID(A1,LEN(A1)-1,1)=" ", single_char, "")