안녕하세요. 짤막한 강좌 한정희 강사입니다.
이번 강좌는 수업 중에 또는 블로그와 유튜브에 댓글로 질문이 많은 이름 가운데 글자를 별표 처리하는 방법을 강좌로 만들어봤습니다.
이전에도 Replace 함수를 사용하여 이름 가운데 글자를 별표 처리하는 방법을 소개한 적이 있는데 이 강좌는 단순히 이름이 세자(성 포함)인 경우에 가운데 글자를 *로 바꾸는 방법이었죠.
이전 강좌 링크 해 두었습니다. https://hantip.net/125
실습 파일 다운로드
오늘은 난이도를 조금 높여 실무에서도 많이 활용할 수 있도록 준비해봤습니다.
글자수에 따라 두 자인 경우 이름 끝자리를 *로, 세 자인 경우에는 가운데 글자를 *로 네 자인 경우 가운데 두 글자를 **하는 방법이죠.
이름 글자 수에 따라 *의 위치와 개수가 달라지기 때문에 먼저 이름이 몇 글자인지 구하는 함수부터 소개하겠습니다.
Len 함수는 문자 개수를 구하는 함수입니다.
1. [B3] 셀을 선택하고 =LEN()을 입력하고 함수 삽입[fx] 버튼을 클릭합니다.
2. Text 인수 입력창에 커서를 두고 [B3] 셀을 선택하고 [확인] 버튼을 클릭합니다.
3. [C3] 셀의 수식을 [C8] 까지 채우기(복사) 합니다.
어떤가요? 각 이름의 개수가 구해졌나요?
그럼 IF 함수를 사용하여 글자 개수에 맞게 * 처리하는 결과를 만들면 됩니다.
IF 함수와 Len 함수를 사용하여 이름 가운데 글자 * 처리하기
1. [C3] 셀을 선택하고 =IF()를 입력한 후 함수 삽입[fx] 버튼를 클릭합니다.
2. Logical_test 인수 입력창에 LEN(B3)을 입력합니다. (Len 함수가 [B3] 셀의 글자수를 구합니다.)
3. Logical_test 인수 입력창에서 LEN(B3) 함수 오른쪽에 커서를 두고 >3(3을 초과)를 입력합니다.
그러면 LEN(B3)>3 이라고 조건식이 완성됩니다.
4. Value_if_true 인수 입력창에 REPLACE() 함수를 중첩하고 수식 입력줄에서 Replace 함수를 선택합니다.
5. Replace 함수 삽입 대화상자로 변경되면 Old_test 인수 입력창에 [B3] 셀을 지정하고
6. Start_num 인수에 2를 입력하고(*로 변경할 시작 글자 위치)
7. Num_chars 인수에 2를 입력한 후(*로 변경할 글자 개수)
8. New_test 인수 입력창에 “**”를 입력하고 수식 입력줄에서 IF 함수를 선택합니다.
10. IF 함수 삽입 대화상자로 바뀌면 Value_if_false 인수 입력창에 커서를 두고 REPLACE() 함수를 중첩하고 수식 입력줄에서 방금 중첩한 Replace 함수를 선택합니다.
11. Replace 함수 삽입 대화상자로 바뀌면 이번에는 이름의 두 번째 위치의 한 개 문자를 “*”로 변경하도록 인수를 작성하고 다시 수식 입력줄에서 IF 함수를 선택합니다.
12. IF 함수가 완성되었으면 [확인] 버튼을 클릭합니다.
13. [C3] 셀의 수식을 [C8] 셀까지 채우기(복사)합니다.
이번에는 성씨를 제외하고 이름을 *로 처리하는 방법을 알려 달라는 문의가 있었습니다.
이 예제에서 새롭게 만날 Rept 함수부터 소개하겠습니다.
1. [D3] 셀을 선택하고 =REPT()을 입력하고 함수 삽입[fx] 버튼를 클릭합니다.
2, Text 인수 입력창에 “*”를 입력합니다.
3. Number_times 인수에 Len 함수를 중첩하고 [B3] 셀의 개수를 구하는 함수식을 작성합니다. 수식은 LEN(B3)이 되겠죠?
4. [확인] 버튼을 클릭합니다.
어떤가요? 이름의 글자 수만큼 * 처리가 되었나요?
이번에는 제대로 성씨를 제외한 나머지 이름에 * 표시를 해보겠습니다.
참고로 성씨가 ‘황보세영’과 같이 성이 두 자일수도 있고 성이 한 자인 경우도 있습니다.
이런 경우를 모두 체크하려면 거의 불가능에 가깝습니다.
우리나라에서 사용되는 성씨가 두 자인 경우의 데이터가 있어야 하므로 무시하고 네 자인 경우 가운데 두 글자를 *로 처리하겠습니다.
1. =REPLACE()를 입력하고 함수 삽입[fx] 버튼를 클릭합니다.
2. Old_text 인수 입력창에 [B3] 셀을 지정하고
3. Start_num 인수 입력창에 2를 입력하고(*로 바꿀 위치는 이름의 두 번째 위치)
4. Num_Chars 인수 입력창에 커서를 두고 LEN(B3)-1 라고 수식을 작성합니다. (Num_Chars 인수는 *로 바꿀 글자 수입니다. 이름 글자 수에 따라 달라지기 때문에 Len 함수를 사용하여 이름 글자 수를 구한 다음 성씨에 해당하는 한 글자만 빼면 *로 바꿀 개수가 구해집니다.)
5. New_text 인수 입력창에 REPT() 함수를 중첩합니다. Rept 함수를 사용하는 이유는 Num_chars 인수에서 지정한 개수만큼 *를 반복해서 나타내기 위해서 입니다.
6. REPT(“*”,LEN(B3)-1)이라고 수식을 작성하고 [확인] 버튼을 클릭합니다. (그럼 이름 글자 수에서 성씨에 해당하는 한 글자를 제외한 나머지 개수만큼 *을 반복(Rept)해서 표시해라는 수식이 완성됩니다.)
어떤가요? 성씨를 제외한 나머지 이름에 *처리가 되었죠?
영상 강좌도 준비했습니다.
즐거운 하루 보내세요~
'엑셀' 카테고리의 다른 글
엑셀 108강] 업무에 필요한 양식 만들기 2 - 견적서 (2) | 2019.04.21 |
---|---|
엑셀 107강] 업무에 필요한 양식 만들기1 - 지출기안서 (3) | 2019.04.20 |
엑셀 기초 105강] 할인율이 적용된 금액 구하기 - 상대 참조와 절대 참조 (0) | 2019.01.10 |
엑셀 기초 104강] 워크시트 다루기 (1) | 2019.01.10 |
엑셀 기초 103강] 메모 삽입, 편집, 삭제 (2) | 2019.01.10 |