엑셀 마스킹 함수: 수식 한 줄로 이름과 연락처를 한 번에 가립니다
대행사에 상담 데이터를 넘겨야 합니다.
분석을 맡기거나, 감사 자료로 내거나, 소송 대응으로 제출합니다. 그때 이름과 연락처가 그대로 들어 있으면 그냥 못 보냅니다.
마스킹은 매일 하는 일이 아닙니다. 파일을 밖으로 넘기는 날에만 합니다. 그래서 급할 때 처음부터 찾게 됩니다. 이 글은 엑셀 데이터 정리 여덟 단계 밖에 있는 작업이고, 넘기기 직전에 한 번 하는 일입니다.
엑셀 마스킹 함수는 REPLACE 하나로 시작합니다
REPLACE는 몇 번째 글자부터 몇 글자를 무엇으로 바꿀지 지정합니다.
=REPLACE(B2,2,1,"*") 홍길동 → 홍*동
=REPLACE(C2,5,4,"****") 010-1234-5678 → 010-****-5678
이름은 두 번째 글자 한 자를, 연락처는 가운데 네 숫자를 가립니다. 넘기는 쪽에서 같은 사람인지 구분해야 한다면 뒤 네 숫자를 남기고, 그럴 필요가 없으면 더 많이 가립니다.
엑셀 마스킹 방법을 검색하면 대개 여기까지 나옵니다. 실제 파일에서는 여기서부터 걸립니다.
자릿수가 다르면 한 수식으로 안 됩니다
이름은 두 글자도 있고 네 글자도 있습니다. 연락처는 하이픈이 있는 것과 없는 것이 섞입니다.
길이에 따라 나눕니다.
=IF(LEN(B2)=2,REPLACE(B2,2,1,"*"),REPLACE(B2,2,LEN(B2)-2,REPT("*",LEN(B2)-2)))
두 글자면 뒤 한 자만 가리고, 세 글자 이상이면 처음과 끝만 남기고 가운데를 전부 별표로 바꿉니다. REPT가 길이에 맞춰 별표 개수를 만들어 줍니다.
연락처는 하이픈을 먼저 없애고 자릿수를 맞추는 편이 간단합니다.
=REPLACE(SUBSTITUTE(C2,"-",""),4,4,"****")
표기가 흔들리는 값을 먼저 정리하고 나서 가리는 순서입니다. 조회가 안 붙는 문제와 같은 순서이고, 정제가 먼저 와야 뒤가 편해집니다.
열은 가려지는데 본문에는 그대로 남습니다
실제 사고는 여기서 납니다.
상담 내용 열에 "010으로 연락 주세요"나 "김철수 고객님 건입니다"가 그냥 들어 있습니다. 연락처 열을 아무리 가려도 본문에 남아 있으면 가린 셈이 못 됩니다.
본문 속 번호는 몇 번째 글자인지 정해져 있지 않아서 REPLACE로 못 잡습니다. 패턴으로 찾아야 하는데 엑셀 기본 함수에는 정규식이 없습니다. 365의 REGEXREPLACE가 있으면 다음처럼 됩니다.
=REGEXREPLACE(D2,"01[0-9][- ]?[0-9]{3,4}[- ]?[0-9]{4}","010-****-****")
이 함수가 없는 버전이면 방법이 둘입니다. 본문 열 자체를 빼고 넘기거나, 사람이 읽고 지웁니다. 건수가 적으면 후자가 되고 수백 건이면 전자가 됩니다.
무엇을 가렸는지 목록으로 남깁니다
가린 파일을 만들고 나면 무엇을 가렸는지 기억이 안 납니다.
같은 파일에 시트를 하나 더 만들어 세 줄만 적습니다. 어떤 열을 어떤 방식으로 가렸는지, 어떤 열을 통째로 뺐는지, 원본이 어디 있는지입니다.
이게 있으면 받는 쪽에서 "이 열은 왜 없나요"라고 물었을 때 바로 답합니다. 그리고 다음에 같은 요청이 오면 그 시트를 보고 그대로 다시 합니다.
값으로 고정해서 내보냅니다
수식으로 가린 상태에서 파일을 그냥 보내면 원본 열이 같이 갑니다. 수식이 원본을 참조하고 있기 때문입니다.
마스킹한 열을 복사해 값만 붙여넣기로 고정하고, 원본 열을 삭제한 뒤 다른 이름으로 저장합니다. 원본 파일은 따로 둡니다.
숨기기로 처리하면 안 됩니다. 열 숨기기는 데이터를 지우지 않고 안 보이게만 합니다. 받는 쪽에서 두 번 클릭하면 나옵니다.
매번 하는 작업이면 앞으로 옮깁니다
한 달에 한두 번이면 위 순서를 그대로 하는 것이 빠릅니다.
주마다 반복되면 이야기가 달라집니다. 마스킹 규칙을 파워 쿼리 단계로 저장해 두면 원본을 새로 넣고 새로 고침만 하면 가려진 표가 나옵니다. 사람이 매번 수식을 다시 거는 단계가 사라집니다.
감사 자료를 낼 때 원장을 통째로 주지 않고 필요한 계정만 뽑아 주듯, 상담 대장도 넘길 열과 가릴 열을 먼저 나눠 둡니다. 그 구분이 파일에 적혀 있으면 매번 다시 판단하지 않습니다.
자주 받는 질문
Q. 엑셀 개인정보 마스킹 방법에 정해진 규칙이 있나요
A. 법으로 정해진 마스킹 자릿수는 없습니다. 다만 받는 쪽에서 개인을 특정할 수 없어야 하므로, 이름과 연락처를 각각 조금씩 가리는 것보다 한쪽을 확실히 가리는 편이 안전합니다. 생년월일과 주소가 같이 있으면 조합으로 특정되므로 그것도 함께 봅니다.
Q. 마스킹한 뒤에도 같은 사람인지 구분해야 합니다
A. 원본 연락처를 그대로 두지 말고 순번을 붙입니다. =MATCH(C2,UNIQUE(C:C),0)으로 고객마다 번호를 매기고 그 번호만 넘깁니다. 받는 쪽은 같은 사람인지 알 수 있고 누구인지는 모릅니다.
Q. 엑셀 개인정보 가리는 방법으로 셀 서식을 쓰면 안 되나요
A. 안 됩니다. 사용자 지정 서식으로 별표를 보이게 해도 셀 안의 값은 원본 그대로라 수식 입력줄과 복사에서 다 보입니다. 값 자체를 바꿔야 가려집니다.
Q. 파일을 열 때 암호를 걸면 마스킹을 안 해도 되나요
A. 다른 이야기입니다. 암호는 파일을 여는 사람을 제한하고, 마스킹은 연 사람이 볼 내용을 제한합니다. 대행사에 넘기는 파일은 상대가 열어야 하므로 마스킹이 필요합니다.
가린 파일을 만들 때마다 무엇을 가렸는지 한 줄 적어두면, 다음에 같은 요청이 왔을 때 십 분이 일 분이 됩니다.