728x90

사방에서 번호를 찾을 수 있습니다.

전자제품이나, 학생번호, 시설번호 등등 다양한 일련번호를 사용합니다.

이런  번호에는 그 자체로도 어느정도 정보를 넣어서 만드는데 대충 아래 같은 것들을 넣습니다.

 

전자제품 일련번호의 예

 

엑셀에 익숙하신 분들은 이런 형식에 일련번호에서 "제작날짜"만 추출하거나 하는 경우가 있을 것입니다.

(참고링크 : 엑셀(EXCEL) 글자 수로 짤라 추출하는 LEFT, RIGHT, MID함수로 텍스트 편집)

그런데 이건 형식이 똑같은 경우에만 사용할 수 있고 두개 이상의 형식이라면 어려워집니다.

밑의 예시에 모델명을 보면 회사가 달라 서로 다른 형식으로 번호가 부여되어 있습니다.

 

 

<< 사용할 예시 >>

 

예시 테이블

 

A사는 모델 고유명이 앞의 4개 영문이고 "-"로 구별되어 있습니다.

B사는 앞의 3개의 영문명이 모델 고유명이고 " "(공백)으로 구별되어 있습니다.

이 때 앞의 모델 고유명만 뽑아오는 함수를 작성하겠습니다.

먼저, Find 함수와 IFERROR 함수에 대해서 알아야 합니다.

Find 함수 소개 링크

IFERROR 함수 소개 링크

 

 

 

<< 함수내용 >>

 

IFERROR 함수와 Find 함수를 조합한 것으로 내용은 

"=IFERROR(LEFT(C3,FIND("-",C3)-1),LEFT(C3,FIND(" ",C3)-1))"가 됩니다.

조금 복잡한 함수에 대해서 설명하겠습니다.

 

함수의 내용

 

① FIND 함수 : 문자 안에서 "-"가 어디 있는지 찾아냅니다. "-"까지는 필요 없음으로 -1을 적용합니다.

② LEFT 함수 : 문자에서 "-" 바로 앞까지 출력하면 모델 고유명이 됩니다.

③ IFERROR 함수 : 다른 회사는 "-"를 쓰지 않기 때문에 ERROR가 발생합니다. 그럼 다음항으로 넘어갑니다.

④ FIND 함수(두번째) : 문자 안에서 " "를 찾습니다. " "은 필요없음으로 -1을 적용합니다.

⑤ LEFT 함수(두번째) : 문자에서 " " 바로 앞까지 출력하면 모델 고유명이 됩니다.

 

이 방식으로 3가지 4가지도 적용해서 진행할 수도 있습니다.

하지만 함수는 일괄적용이라서 동시에 두 가지 문자를 같이 사용한다던가, 여러 복잡한 형태가 이어지면 한계가 있습니다.

이건 좀 원본 데이터가 조금은 단순해야 사용할 수 있는 것이라고 생각해 주세요.

 

적용결과

 

단순한 제 시트에서는 정상적으로 적용되는 것을 확인했습니다.

만일 복잡해지면 VBA나 임시시트를 활용하는등 방법을 찾아야합니다.

계속 복잡해지면 언젠가는 DB 개념도 나올 것입니다. 이때는 더이상 엑셀이 문제가 아니겠죠.

 

 

반응형

+ Recent posts