금요일 오후 급한 일들은 다 처리한 관계로 혹시라도 도웅이 될까하여
그동안 아주 오랬동안 쉬고? 있었던 엑셀 팁을 오랜만에 올려봅니다.
엑셀을 데이터베이스로 잘 이용해 오셨으면 관계없는 일인데 기존의
문서 자료를 복사하여 엑셀에 붙여넣기해서 자료가 편집된 경우에는
매우 귀찮은 일들을 반복적으로 해야할 경우가 있습니다.
예를 들어 기존 자료에서 한 셀에 23/45와 같이 데이터가 묶여있으면
23과 45를 분리하여 가공해야 하는 경우에 데이터가 몇 개 뿐이면
그냥 입력이나 수정하거나 조금 수식을 쓰면 되는데 몇천, 몇만이 되고
23 / 45와 같이 사람에게 보기 좋게 입력된 것을 추출할려면 고생이
이만저만이 아니고 바쁜데 시간은 시간대로 가고 ...
그래서 인터넷에 많이 널린? 수식을 이용한 추출이 아닌 함수를 이용해서
엑셀에 그냥 아래 Module를 추가하고 함수 사용하듯이 사용하면 됩니다.
엑셀 여시고 Alt+F11눌러서 삽입 -> 모듈을 선택하고 아래 코드 복사
' 아래는 /로 구분된 경우이니 다른 것이면 이 부분만 수정하여 사용
' 앞부분 숫자 추출
Public Function split_to_front(tstr As Range) As Integer
split_to_front = Val(Mid(tstr, 1, InStr(tstr, "/") - 1))
End Function
'뒷부분 숫자 추출
Public Function split_to_rear(tstr As Range) As Integer
split_to_rear = Val(Mid(tstr, InStrRev(tstr, "/") + 1))
End Function
그런데 23 / 45같은 경우는 "/"를 " / "로 바꾸어 사용하면 되지만
이것들이 23/45, 23 / 45와 같이 혼재할 경우에는 함수 하나로는 부족해서
편법으로 제작, 앞뒤로 한개씩 더 잘라내면 됩니다. 아래 수식 참고
Public Function split_to_front_space(tstr As Range) As Integer
split_to_front_space = Val(Mid(tstr, 1, InStr(tstr, "/") - 2))
End Function
Public Function split_to_rear_space(tstr As Range) As Integer
split_to_rear_space = Val(Mid(tstr, InStrRev(tstr, "/") + 2))
End Function
그냥 잘 사용하십시오. 위 방법과 다르게 여러가지가 글 쓰면서도 생각나지만
사용하시는 분이 아이디어를 내어 잘 활용하세요.
텍스트 나누기 기능이 있다는 것도 알고 있고요. 취미로 제가 VBA로 몇천줄 정도는 기본으로 짜서 회사 실험실의
데이터 관리 및 가공 프로그램 만들어 쓰고 있어요.
오피스용 VBA 입문을 위한 추천서 또는 추천 사이트가 있을까요?
짬짬히 공부해서 업무에 적용해 보려고 하고 있어서요.
지난주에는 구글링 해서 엑셀 한 행의 데이터를 파워포인트 한 장에 입력하는 VBA 코드도 써 봤는데 너무 편하더라고요