잘못된 형식의 이미지 링크입니다.
F1 수식을 구하고 있습니다.
흔한 케이스가 아닌지 검색을 해봐도 잘 안되네요.
조언 부탁드려요 .
도움주시면 대단히 감사하겠습니다.
----------------------
(추가)
제가 예를 잘 못 든 것 같아서 다시 첨부합니다. 죄송합니다ㅜㅜ 다시한번 봐주시면 대단히 감사하겠습니다.
잘못된 형식의 이미지 링크입니다.
앞에 문자열 일부만 같고 뒤는 불규칙한 조합의 문자열 중 앞부분만 일치하는 F1 셀값을 구하고자 합니다.
----------------------
(추가)
E열이 B열의 문자열을 다 포함해야된다고 하셔서 아래와 같이 이렇게만이라도 되면 좋겠습니다ㅜㅜ
잘못된 형식의 이미지 링크입니다.
수식 부탁드립니다. 꾸벅.
+
비슷한 케이스를 찾았는데 밑에 수식 중 1E100 이 뭔지 모르겠습니다. ㅜㅜ
잘못된 형식의 이미지 링크입니다.
간단합니다..
=VLOOKUP(LEFT(E1,FIND(" ",E1)-2),$B$1:$C$4,2,FALSE)
그렇네요..
근데 저대로 하더라고 원하시는 것처럼 B열의 문자열이 전부 일치하는게 아니고, 일정문자열이 일치하게 하는 방식으로는 안됩니다.
BB_House_Beth가 다 들어가야 Mom이 나오고
BB_House 만 들어가도 Mom이 나오게는 안됩니다...
1E100은 단순히 아주 큰 숫자를 임의로 넣은거라고 생각하시면 됩니당..
B열에 AA_House, BB_House 도 기입하여 문제를 해결할 수 있습니다. 다만 짧은 문자열이 위쪽에 써져야 합니다.
값이 0으로 표시되는 문제는
IFERROR(LOOKUP(1E+100,SEARCH($B$1:$B$4,E1),$C$1:$C$4),"")
에서 $B$1:$B$4과 $C$1:$C$4 내에 빈 칸이 포함되기 때문입니다. 영역을 빈칸 없도록 정확히 설정하셔야 합니다.
정말 죄송하지만 시간나실 때 한번더 조언 부탁드려도 될까요? ㅠㅠ
아래는 질문글입니다.
https://www.clien.net/service/board/kin/15020147?po=0&sk=id&sv=dreamysky&groupCd=&pt=0CLIEN
F1 셀에다가
=IF(NOT(ISERROR(SEARCH($B$1,E1))),$C$1,"")&IF(NOT(ISERROR(SEARCH($B$2,E1))),$C$2,"")&IF(NOT(ISERROR(SEARCH($B$3,E1))),$C$3,"")&IF(NOT(ISERROR(SEARCH($B$4,E1))),$C$4,"")
이렇게 넣으시면 될듯.
---- 변경
F1 셀에다가 아래 내용으로 바꾸시면 될 듯요. (첫번째 참외 수박 예제용으로 만든겁니다.)
=IFERROR(LOOKUP(1E+100,SEARCH($B$1:$B$4,E1),$C$1:$C$4),"")
1*10^100승입니다. 예를 들어 1E3 이면 1000 인거죠.
위 마지막 이미지에서 결국 B열에 나오는 단어가 E열의 부분 문자열만 만족하면 되는 경우 1,3번째 행은 잘 나올겁니다.
다만 위에서 2번째 Mom이 나오고 4번째 Daddy가 나오려면 B열이 E열의 부분 문자열을 만족하지 못하기 때문에 나올수 없습니다.
다만 E2의 BB_House의 경우 B2의 BB_House_Beth의 반대로 부분 문자열이기 때문에 수식을 변경하면 추가할 수 있습니다.
하지만 마지막 E4의 AA_House(abc)는 B1의 AA_House_Door와 부분 문자열 매칭이 되지 않습니다. 이땐 유사 문자열로 구분됩니다.
우선 1,2,3번만 나오게 하시려면 아래 처럼 수식을 수정하시면 됩니다.
F1열에 아래 내용을 기입하시고 F2,F3에 복사하시면 됩니다.
=IFERROR(LOOKUP(3,SEARCH($B$1:$B$2,E1),$C$1:$C$2),"")&IFERROR(LOOKUP(3,SEARCH(E1,$B$1:$B$2),$C$1:$C$2),"")
F1셀애 아래와 같이 넣으시면 됩니다.
=IF(IFERROR(LOOKUP(10,SEARCH($B$1:$B$2,LEFT(E1,IFERROR(FIND("(",E1)-1,LEN(E1)))),$C$1:$C$2),"")<>"",IFERROR(LOOKUP(10,SEARCH($B$1:$B$2,LEFT(E1,IFERROR(FIND("(",E1)-1,LEN(E1)))),$C$1:$C$2),""),IFERROR(LOOKUP(3,SEARCH($B$1:$B$2,LEFT(E1,IFERROR(FIND("(",E1)-1,LEN(E1)))),$C$1:$C$2),"")&IFERROR(LOOKUP(3,SEARCH(LEFT(E1,IFERROR(FIND("(",E1)-1,LEN(E1))),$B$1:$B$2),$C$1:$C$2),""))
이후 F1 셀 내용을 F2~4까지 복사하시면 됩니다.
위는 실행 결과 입니다.
그리고 B,C열에 데이터가 추가되면 위에 $B$2 와 $C$2 라고 된 부분을 모두 해당 행 길이 만큼 바꾸시면 됩니다.
이런식으로 계속 변칙사항이 생긴다면 이건 엑셀 함수 레벨에서 해결할 내용이 아닙니다.
아예 vba스크립트로 특정한 알고리즘을 짜거나 혹은 전용 툴을 써야죠.
MS에서는 이런 유사값 매칭을 위해서 Fuzzy Lookup 이라는 엑셀 추가기능을 만들어놨습니다.
https://www.microsoft.com/en-us/download/details.aspx?id=15011
스크린샷을 대충 보시면 아시겠지만, Fuzzy Lookup은 이런식으로 테이블 2개를 입력하면 유사값을 찾아줍니다.
일단 유사값 매칭부터 하면, index를 이용해 왼쪽 테이블 옆 값 가져오는건 충분히 간단하죠.