이유는 모르겠지만 위와 같은 Excel 파일이 있으며 저는 적요 뒤에 위치한 카드사와 카드번호를 따로 추려야 하는 상황입니다.
RIGHT(문자열을 추출할 셀값, [추출할 문자수])
right 함수의 경우 위와 같은 구조인데... 특정 셀의 오른쪽 끝에서부터 역방향으로 원하는 문자수만큼을 추출해 줍니다.
위의 경우에는 "하나카드1134"라는 8개의 문자열을 추출해야 하므로 수식을 아래와 같이 작성하면 되겠습니다.
=right(F2,8)
이렇게 추출할 문자열의 글자의 개수가 같은 경우에는 일이 쉬운데 그렇지 않은 경우들도 있습니다.
LEN(길이를 확인할 문자열)
그런 상황에 사용할 수 있는 LEN 함수가 있습니다.
위와 같이 수식을 입력하면 F2 셀의 텍스트 문자열의 길이인 '14'라는 값을 반환하며 문자열의 길이를 셀 때는 공백도 문자로 계산됩니다.
위의 값은 전체 문자열의 길이인데 우리가 필요한 것은 "/" 문자 이후의 문자열의 길이이므로 다른 함수가 하나 더 필요합니다.
FIND(찾으려는 문자열, 값을 찾을 셀값, [start_num])
파인트 아니고 파인드 함수를 사용하면 되는데 위와 같이 수식을 입력하면 "/" 문자열이 위치한 '1코 2리 3아 4마 5트 6/'라는 문자열 개수인 '6'의 값을 반환합니다.
위의 len 함수와 같이 엮어 생각하면 전체 문자의 개수에서 "/" 문자열이 시작하는 위치의 값을 빼주면 "/" 뒤의 문자열의 개수가 나옵니다.
[start_num]은 비워두면 됩니다.
그러니 두 함수를 아래와 같이 합쳐줍니다.
LEN(F2)-FIND("/",F2)
마지막으로 다시 가장 위에 소개한 right 함수에서 [추출할 문자수]에 위의 값을 반영해 주면 원하는 대로 "/" 문자열 이후의 값이 추출됩니다.
=RIGHT(F2,LEN(F2)-FIND("/",F2))
함수의 이름에서 예측할 수 있듯이 왼쪽의 값을 가져오는 left 함수도 존재하며 중간의 어느 값을 가져오는 함수로는 mid 함수가 있습니다.
예전에 일용지급명세서의 수정신고가 전자신고가 되지 않던 시절... 어느 일을 잘 모르는 세무사가 조사관에게 부탁하여 기존에 신고한 일용지급명세서를 삭제하고 다시 전체를 제출하면 될 것을, 수천 명이 되는 일용지급명세서를 세무서 제출용 지급명세서 서식으로 서면으로 출력하여 제출한 적이 있습니다.
수기로 작성하지 않는 이상 해당 파일의 작성은 당시에 사무실에서 가능한 사람은 저뿐이라 제가 해당 작업을 했었는데, 일용직을 신고할 때 세무회계사무실에서 받는 원시자료는 보통은 엑셀파일이고, 수정할 데이터를 받은 것도 엑셀 파일이었습니다.
당시에 자료를 가공하여 모지리 세무사가 원하는 대로 출력하고 보니 지급명세서가 천 장 이상이 나왔던 것 같은데... 사실 이 정도 분량이면 수기로 작성을 해도 꽤나 긴 시간이 필요하고, 작업자의 실수가 생길 수 밖에 없고, 작성을 한 이후에도 소기업이 대부분인 세무사사무실의 인력으로는 작업자들의 실수를 걸러내기가 거의 불가능에 가깝습니다.
당시에 지급명세서 양식을 엑셀로 만들고 원시 데이터에서 각 칸에 맞게 주민번호를 추출하는데 left, mid, right 함수를 유용하게 사용하여 수시간 내에 작업을 마무리한 기억이 있습니다.
당시의 일을 생각하니 또 화가 나네요,,,
틀딱은 실무자에겐 재앙입니다.