티스토리 뷰

엑셀 연산자의 종류에는 수치 연산에 사용되는 산술 연산자, 셀 참조에 사용되는 참조 연산자, 참과 거짓을 반환하는 논리 연산자( 비교 구문 ), 서로를 연결하는 연결 연산자( & ) 등이 있다. 이 연산자들이 하나의 수식에 사용된다면 어느 연산자가 먼저 실행될까?

이번 게시물은 엑셀 연산 우선 순위에 관해 배워본다.

1. 엑셀 연산 종류별 우선 순위

먼저, 위에서 말한 엑셀의 연산 종류별 우선 순위이다.

[그림1] 엑셀 연산 종류별 우선 순위[그림1] 엑셀 연산 종류별 우선 순위



참조 연산 > 산술 연산 > (문자열) 연결 연산 > 논리 연산

오른쪽으로 갈수록 연산 우선 순위가 낮아진다. 왼쪽의 연산이 먼저 실행되는 것이다. 만일 소괄호가 수식에 사용되었다면 최고 우선 순위는 괄호이다. 이는 우리가 이미 잘 알고 있을 것이다.

[실무 엑셀] 엑셀의 기본적인 연산자와 기호의 의미 :
http://secstart.tistory.com/565

2. 다양한 연산이 섞인 엑셀 수식의 우선 순위

엑셀 모든 연산들을 하나의 수식에 섞어 놓고 연산의 우선 순위를 살펴 보자.

[그림2] 엑셀 예제 수식에서 연산 우선 순위[그림2] 엑셀 예제 수식에서 연산 우선 순위



[그림2] 의 수식1 에는 산술, 논리, 참조, 연결 연산들이 모두 들어 있다. 이 수식1 은 어떤 순서로 처리가 될까? 이를 알기 위해 엑셀의 '수식 계산' 기능을 사용한다. '수식 계산' 은 각 수식에서 단계별로 연산이 어떻게 진행되고 있는지를 확인할 수 있는 수식 분석 도구이다.

1) 먼저 수식1의 수식이 입력된 F6 셀을 선택한다.
2) 리본 메뉴의 수식 탭을 선택한다.
3) '수식 분석' 그룹의 '수식 계산' 기능을 클릭하여 창을 연다. 단축키는 ALT > M > V 이다.

[엑셀 기초] 작업 시간 단축을 위한 기타 유용한 단축키 모음 :
http://secstart.tistory.com/729

3. 엑셀 수식 우선 순위별 처리 단계 - 수식1

수식1 : =100 - 30 / G3 * G3 > F3 & " 이하"

'수식 계산' 창의 수식에서 각 연산 아래의 밑줄은 현재 처리 단계를 의미한다.

[그림3] 수식1의 '수식 계산' 창 - 1단계[그림3] 수식1의 '수식 계산' 창 - 1단계[그림4] 수식1의 '수식 계산' 창 - 2단계[그림4] 수식1의 '수식 계산' 창 - 2단계

1) 30 / G3

수식1 에서 연산자 종류만으로 보면 산술 연산자와 논리 연산자, 연결 연산자가 섞여 있다. 그런데, [그림3] 과 같은 처리가 진행된다는 것은 산술 연산이 논리, 연결 연산자에 우선한다는 의미이다. 하지만 산술 연산을 위해 G3 셀의 값을 얻어야 한다. 그래서 참조 연산이 산술 연산 보다 먼저 진행되는 것이다.

2) 30 / 20

1단계의 G3 셀 값, 20을 참조하면 산술 연산이 가능하다. 따라서 이후의 참조 연산( * 계산 )은 지금은 필요치 않다.

[엑셀 기초] 많은 작업에서 수행되는 일반적인 수식 - 사칙연산 :
http://secstart.tistory.com/696

[그림5] 수식1의 '수식 계산' 창 - 3단계[그림5] 수식1의 '수식 계산' 창 - 3단계[그림6] 수식1의 '수식 계산' 창 - 4단계[그림6] 수식1의 '수식 계산' 창 - 4단계

3) 1.5 * G3

2단계의 연산 결과가 1.5 로 반환되었고 이 값과 G3 의 곱셈이 진행된다. 결국, 1단계와 같은 이유의 참조 연산이다. 곱셈 연산자에 의해 처리가 결정되었고 이를 위해 참조 연산으로 값을 얻어야 하는 것이다.

4) 1.5 * 20

3단계의 G3 셀 값, 20 을 산술 연산( 곱셈 )에 사용한다.


[그림7] 수식1의 '수식 계산' 창 - 5단계[그림7] 수식1의 '수식 계산' 창 - 5단계[그림8] 수식1의 수식 계산 창 - 6단계[그림8] 수식1의 수식 계산 창 - 6단계

5) 100 - 30

100 에서 4단계 산술 연산의 결과인 30 을 뺀다. 이렇게, 수식1에서의 산술 연산은 모두 끝났다. 남은 계산은 논리( 비교 ) 연산과 텍스트 연결 연산( & )이다.

6) 70 > F3 & " 이하"

먼저, 5단계의 결과, 70 이 수식에 반환되었다. 이 단계의 수식에는 논리( 비교 ) 연산자와 텍스트 연결 연산자( & )가 포함되어 있다. 연결 연산이 논리 연산보다 우선 순위가 높다. 이 연결 연산을 위해 F3 의 참조 연산이 필요하다.


[그림9] 수식1의 수식 계산 창 - 7단계[그림9] 수식1의 수식 계산 창 - 7단계[그림10] 수식1의 수식 계산 창 - 8단계[그림10] 수식1의 수식 계산 창 - 8단계

7) 10 & " 이하"

6단계의 F3 셀 참조 값인 10 이 수식에 반영되어 문자열 연결 연산자( & )로 연결된다.

8) 70 > "10이하"

숫자 70 이 문자열 "10이하" 보다 큰지를 비교하고 TRUE( 참 ) 와 FALSE( 거짓 ) 를 결과로 반환한다.


[그림11] 수식1의 수식 계산 창 - 9단계[그림11] 수식1의 수식 계산 창 - 9단계


9) FALSE

8단계의 숫자와 텍스트의 비교는 거짓이다. 이유는 엑셀에서 숫자와 텍스트 문자열을 비교한다면 숫자가 '보다 작다' 는 결과를 얻는다. 그래서 8단계의 70이 보다 큰지를 묻는 비교는 '거짓' 이 되어 FALSE 를 결과로 반환하는 것이다.

참조 연산 > 산술 연산 > 문자열 연결 연산 > 논리 연산

[엑셀 기초] 기타 산술 연산자 퍼센트(%) 캐럿(^) 괄호 수식 :
http://secstart.tistory.com/702

4. 엑셀 수식 우선 순위별 처리 단계 - 수식2

수식2 : =100 - 30 / G3 * (G3 > F3) & " 이하"

수식2 에는 괄호가 사용되었다. 엑셀에서 소괄호는 연산 순위가 가장 높다.

[그림12] 수식2의 '수식 계산' 창 - 단계별 실행[그림12] 수식2의 '수식 계산' 창 - 단계별 실행



소괄호를 제외하면 수식1과 같은 수식인데 전혀 다른 결과를 최종 반환한다. 괄호의 역할을 확인하는 것이다.

엑셀 연산의 우선 순위를 살펴보았다. 수식의 처리에도 나름의 우선 순위가 정해져 있음을 이제는 기억하자.
처리 단계별 연산 순서 : 참조 연산 > 산술 연산 > 문자열 연결 연산 > 논리 연산

그리고 이점도 유의하기 바란다. 수식의 처리는 왼쪽에서 오른쪽이 기본이며 이상은 같은 처리 단계에서의 우선 순위를 말하는 것이다. 따라서, 참조 연산이 우선 순위가 높다하여 모두 한 번에 처리되지는 않는다. 같은 처리 단계에서 다른 연산보다 우선 순위가 높다는 것이다.

마늘빵.


댓글