유효성검사가 필요한 경우
템플릿을 하나 만들어서 여러 동료나 팀원들에게 데이터 입력을 요청해야할 경우가 종종 있습니다. 자료를 입력하는 사람이 템플릿 만든 사람의 마음을 잘 헤아려, 원하는 유형의 데이터를 입력해주면 정말 정말 고마우련만…. 숫자만 입력해달라는 곳에 꼭 텍스트를 넣어서 보내는 사람이 있습니다. 그러면 아예 제가 처음 부터 작업하는 것보다… 중간 중간 추가 작업을 해야 하므로 더 골치 아플 수 도 있어요.
바로 그러한 일을 방지하기 위해, 엑셀로 만든 템플릿에 데이터 입력 시 여러 제한을 둘 수 있는 기능이 있습니다. 바로 데이터 유효성 검사 기능입니다.
데이터 유효성검사 불러오기
메뉴 바에서 데이터 –> 데이터 도구 –> 데이터 유효성 검사 순으로 선택하시면 아래와 같이 데이터 유효성 창이 뜹니다.
로직 함수와 조합
다만 해보시면 알겠지만, 기본 세팅되어 있는 메뉴 (예를 들어 정수)를 고르면 범위등을 지정할 수만 있지, 텍스트/ 숫자만 입력하게 하는 기능은 기본적으로 없습니다.
이럴 때는 사용자 지정을 선택해 함수와 응용하는 지혜가 필요하게 되는데요, 일단 제가 위에 말한 예시 (숫자만 입력하게 하는 것) 에서 필요한 게 로직 함수들 중 하나인 istext, isnumber 입니다.
먼저 아래와 같이 간단한 테이블이 있다고 합시다. 다른 사람들이 C 열 (Project) 에 텍스트만 입력하게 하려면, 아까 보신 것처럼 데이터 유효성 메뉴에서 사용자 지정을 선택한 후… 수식 칸에 다음과 같은 함수를 입력해 주시면 됩니다.
=istext(c3)
다른 사람들이 이 템플릿을 보면서 C3:C8 범위를 마우스 커서로 지나갈 때 입력할 데이터에 대한 설명 메시지나 요구한 데이터와 다른 형식의 데이터를 넣을 때 오류 메시지를 보게 하고 싶다면 다음과 같이 설명 메시지탭과 오류 메시지 탭을 선택해 쓰고 싶은 말을 쓰시면 됩니다.
참고로, 정말 원하는 값만 입력하게 하고 싶으면 오류 메시지 스타일을 “중지” 로 선택해야 합니다. “경고” 를 선택하면, 잘못된 값을 입력해도 경고 메시지만 받고 그냥 넘어갈 수 있거든요. (한 번 직접 해보고 결과도 확인해보시면 좋겠습니다.)
이제 다른 사람들이 D 열 (USD) 에 숫자만 입력하게 하려면 어떻게 해야 할까요? 이번에는 아래와 같이 데이터 유효성 창의 수식 칸에 isnumber를 입력해 주시면 됩니다.
=isnumber(c3)
로직함수의 원리
기본적으로 로직 함수는 내가 요구하는 로직에 맞으면 Yes를 그 외에는 No 를 반환하는 함수라 이해하시면 됩니다. 예를 들어 Isnumber 함수는 인수로 지정된 셀의 값이 숫자인지를 물어보고 숫자면 Yes, 숫자가 아니면 No 라는 결과값을 갖게 됩니다. 따라서 D3 에 누군가가 텍스를 입력하면 Isnumber 함수를 통해 No 라는 결과값이 반환되고, 데이터 유효성 기능을 통해 해당 데이터의 입력이 제한되는 원리입니다.
잘 이해되셨나요?
그럼 다들 주말 동안 재충전하시고, 다음에 또 다른 팁으로 찾아뵐게요 😊
다른 쉽고 유용한 엑셀 팁들을 보고 싶으다면 아래 링크 클릭해주세요!