코딩을 하다 보면, 조건문 if 이하 외의 다른 경우에 대해서는 else 이하로 작성하는데,
엑셀에서는 if else로 따로 구분하지 않는다.
엑셀에서의 입력 형식은 IF(조건문,참인경우,거짓인경우) 로,
else 에 해당하는 구문을 '거짓인 경우' 로 입력받는다.
아래와 같이 날짜 형식이 여러가지로 중구난방인 날짜 컬럼을 정렬하고 싶다..
살펴보니, 년월일 제일 마지막에 "/" 가 있거나 "|" 가 있는 등 또다른 문자가 있는 경우 날짜로 인식되지 못한다.
제일 마지막 문자를 구분하여 각 경우에 따라 일괄로 날짜를 정렬하고 싶다.
마지막 문자를 경우에 따라 구분하기 위해 다중 IF 함수를 활용하려고 한다.
마지막, 처음 문자를 추출하는 RIGHT, LEFT 함수 관련 글은 아래 게시글 참고
https://ryuhyun.tistory.com/52?category=1035446
제일 마지막 문자는 제일 오른쪽에 위치하므로, RIGHT 함수로 제일 마지막 문자를 추출해보자.
RIGHT(추출하고자 하는 셀, 추출하고자 하는 문자가 오른쪽으로부터 몇번째에 위치하는지)
제일 오른쪽의 값이 "/" 인 경우, "|"인 경우, 일반 숫자인 경우(날짜형식으로 정상적으로 입력된 셀)로 구분된다.
"/"인 경우(IF), "|"인 경우(IF)에는 제일 오른쪽에 있는 해당 문자를 제거하고,
일반 날짜형식 셀로 입력된 경우(ELSE)는 해당 셀을 그대로 반환하는 식을 작성하고자 한다.
마지막 문자를 제거하는 방법은 관련 게시글 참고
https://ryuhyun.tistory.com/72?category=1035446
위에 언급한 바와 같이 엑셀에서는 IF ELSE 를 구분하지 않고, IF(조건문,참일경우,거짓일경우) 로 구분하므로
아래와 같은 순서로 다중 IF문 함수식을 순서대로 작성해볼 수 있다.
1. 마지막문자가 "/"인 경우 제일 오른쪽에 있는 문자 제거 후 반환
IF(마지막문자가 "/" 인 경우, 제일 오른쪽에 있는 문자(/) 제거, 이외의경우)
-> IF(RIGHT(해당셀,1)="/",LEFT(해당셀,LEN(해당셀)-1),해당셀)
2. 마지막문자가 "|"인 경우 마찬가지로 제일 오른쪽에 있는 문자 제거 후 반환
- 앞선 식에서 '이외의 경우' 부분에 새로운 IF 문을 삽입하는 형태로 된다.
IF(마지막문자가 "/" 인 경우, 제일 오른쪽에 있는 문자(/) 제거, IF(마지막문자가 "|"인 경우, 제일 오른쪽에 있는 문자(|) 제거, 이외의 경우))
-> IF(RIGHT(해당셀,1)="/",LEFT(해당셀,LEN(해당셀)-1),IF(RIGHT(해당셀,1)="|",LEFT(해당셀,LEN(해당셀)-1),해당셀))
날짜를 일괄된 형식으로 변환하는 함수는 아래 게시글 참조.
https://ryuhyun.tistory.com/73
'도구들 > 엑셀' 카테고리의 다른 글
[엑셀] 번호 하이픈(-) 삭제시,찾기 바꾸기 할때 0 지워짐(SUBSTITUTE 함수 활용) (0) | 2022.05.23 |
---|---|
[엑셀] 날짜 형식으로 변환하기(TEXT 함수, yyyy-mm-dd) (0) | 2022.05.11 |
[엑셀] 끝에서부터 n번째 글자 지우기,마지막 글자 지우기,첫 글자 지우기(LEFT,RIGHT, LEN 함수) (0) | 2022.05.10 |
[엑셀] 날짜 소요일수 구하기, 일 수 계산, 엑셀 날짜 빼기 (0) | 2021.12.13 |
[엑셀] 년월일 날짜 형식으로 변환하기(DATE 함수) (0) | 2021.12.13 |