이전 포스팅에서 이어집니다.
이전 포스팅에서 여기까지 해냈습니다.
K M B값으로 표현된 달러를 숫자로 변환한 후 환율에 맞춰 한화로 변환한 값을 한글 표시까지 해주는!
친절하고 복잡했는데 보이는 건 간단한 엑셀식입니다.
여기서 조금 더 친절한 고민이 듭니다.
누가 이걸 쓰다가 달러+단위값 영역에 값을 잘못 넣으면 어떡하지?
12'4M 이라고 쓰거나 123MMN 이라고 쓴다면?
왜 계산이 안되는지 모를텐데~!
그럼 왜 계산이 안되는지 알려주도록 합니다.
오늘 준비한 활용법은 숫자 값인지 검증하여 경고문구를 반환하는 식입니다.
우선 마지막으로 달러값 계산에 사용된 수식을 풀어서 한눈에 봅시다.
=MULTIPLY(LEFT(C8,(LEN(C8)-1)),VLOOKUP(RIGHT(UPPER(C8)),B17:C19,2,false))
이런 과정을 거쳐서 분리된 문자를 이래저래 곱해주는 식이었습니다.
자세한 내용은 이전 포스팅을 참고해주세요.
위의 식을 사용했을 때, 오류는 아래와 같은 케이스로 발생할 수 있습니다.
1. 숫자가 아닌 것을 잘못 입력하는 경우
2. 단위 뒤에 알파벳을 여러 개 붙인 경우
달러+단위값을 잘못적을 경우, 필연적으로 숫자 값에 숫자가 아닌 것이 섞여 들어갑니다.
(숫자 자체를 잘못 적었다면... 어쩔 수 없습니다. 그건 함수의 탓이 아니니까요.)
이걸 활용해서 잘못 입력했을 경우 숫자 값의 TRUE/FALSE를 판단하여
경고문을 반환하는 식을 만들어봅니다.
이전 포스팅에서 활용되었던 IF, ISNUMBER 함수를 활용하면 간단하게 만들 수 있습니다.
각 함수에 대한 자세한 설명은 아래의 링크에서 확인해주세요.
우선 경고문 문구를 정해줍니다.
숫자+단위(ex.123M) 형태로 입력해주세요.
이 정도면 친절할 것 같습니다.
셀에 적어줍니다.
그럼 이제 경고문 함수 식을 만들어봅니다.
완성된 식은 아래와 같습니다.
=IF(ISNUMBER(MULTIPLY(LEFT(C8,(LEN(C8)-1)),0)),C20,C21)
이 식을 차근차근 풀어보겠습니다.
우선, 파란색으로 표시된 LEFT(C8,(LEN(C8)-1) 함수는
이전 포스팅에 설명되었다시피,
마지막 자리의 단위 값 문자를 뺀 앞의 문자만 구하는 식입니다.
초록색으로 표시된 MULTIPLY는 이전 포스팅에 설명되었다시피
곱하기 함수입니다.
LEFT(C8,(LEN(C8)-1) 값과 숫자 0을 곱해줍니다.
굳이 0일 필요는 없습니다. 곱셈이 가능한 숫자면 다됩니다.
0으로 한건 취향입니다.
그럼 노란색으로 표시된 ISNUMBER 함수가 곱한 값이 숫자인지 판단해줍니다.
ISNUMBER 함수는 아래의 영역까지입니다.
ISNUMBER(MULTIPLY(LEFT(C8,(LEN(C8)-1),0))
알파벳이 섞여 들어가 곱해지지 않는다면 FALSE 값을 뱉을 것입니다.
ISNUMBER 함수에 대한 설명은 이전 포스팅을 참고해주세요.
ISNUMBER 함수가 토해내는 값이 TRUE인지 FALSE 인지를 판단하여
IF 함수가 지정된 값을 뱉어냅니다.
=IF(숫자인지 판단하는 논리식, TRUE일 경우 공백, FALSE일 경우 안내문)
결과적으로 이런 함수 식이 완성됩니다.
함수식 내에서 C20은 공백인 아무 칸이나 하나 찍은 것이고,
C21은 경고문구를 적어놓은 셀의 위치입니다.
그럼 이제 수식을 적용해봅니다.
틀린 게 확실하게 보이도록 달러+단위값을 입력하는 셀 아래에 적용하겠습니다.
그런데 된 건지 안된 건지 모르겠습니다.
달러+단위값에 틀린 값을 입력해봅니다.
그런데 별로 경고문이 무시무시하지가 않습니다.
빨간색으로 서식을 적용해줍니다.
색상을 빨간색으로 변경했더니 그럴싸합니다.
참고로 함수식으로는 문자만 가지고 오므로, 글자 및 셀 서식은 최종적으로 값이 표시될 셀에 적용해주세요.
드디어 완성입니다.
길고 긴 달러-한화 여정이 끝났습니다.
다음 포스팅에는 지금까지 포스팅된 달러-한화 수식을 총정리해보겠습니다.
댓글