티스토리 뷰

728x90

연산자와 함수로 구성되는 엑셀의 수식은 =로 시작하고 "텍스트" 서식이 아닌 곳에서 입력해야 함을 "엑셀 함수와 친해지기 - 연산자 활용하기"에서 다루었습니다. 엑셀의 다양한 연산자가 어떻게 동작하는지를 아는 것도 중요하지만 이번 포스팅에서 연산자를 여러개 포함하는 수식에서 연산자 간의 우선 순위가 존재한다는 점과 연산 방향이 있음을 다루고자 합니다.



그냥 아무 생각없이 수식 "=A1+B1*C1"을 계산하면 2+5=7, 7*7=49 아닌가? 하는 착각을 할 수도 있습니다. 그렇지만 실제 계산 결과는 5*7=35, 2+35=37 입니다. 덧셈/뺄셈보다 곱셈/나눗셈을 먼저 계산하는 것입니다. 곱셈/나눗셈 연산자의 우선순위가 높기 때문입니다. 지수 연산자가 있었다면 지수 연산자부터 수행했을 것입니다.

다고 합니다.  엑셀 연산자의 우선 순위는 다음과 같습니다.


    • - : 부호바꾸기(* -1의 효과, 단일항)
    • % : 퍼센트(나누기 100의 효과, 단일항)
    • ^ : 지수
    • *, / : 곱셈, 나눗셈
    • +, - : 덧셈, 뺄셈
    • & : 결합(Concatenation) 연산자
    • =, <>, <, <=, >, >= : 비교 연산자


앞서 언급한 덧셈, 뺄셈, 곱셈, 나눗셈, 지수 보다 앞서는 것은 연산 대상이 하나인(단일항) 부호 바꾸기와 퍼센트 연산자 입니다. 이후로는 문자열을 붙이는 결합 연산자와 논리 결과값을 산출하는 비교 연산자의 순입니다. 그런데 덧셈과 뺄셈, 곱셈과 나눗셈처럼 순위가 같은 연산자들이 이어져 있는 경우에는 좌에서 우로 연산을 수행합니다. "=A1+B1-C1*D1*E1/F1" 연산이라면 C1 * D1을 수행하고 그 결과 * E1을 수행하고 그 결과를 F1으로 나눕니다. 그 다음에는 A1+B1을 수행하고 그 결과에서 곱셈 및 나눗셈한 결과를 빼는 방식입니다. 


이러한 연산자간의 우선 순위와 연산 방향을 바꾸는 것이 괄호 입니다.  괄호를 사용하면 연산자의 우선 순위와 무관하게 연산 순서를 지정할 수 있습니다. "=(A1+(B1-C1))*D1*E1/F1" 수식은 B1-C1을 가장 먼저 수행합니다. 그 결과와 A1을 더하고 그 다음에 D1과 곱하는 과정으로 진행합니다. 예제처럼 괄호가 괄호를 내포하는 방식이라면 안쪽 괄호부터 수행하고 나란히 있는 괄호는 다른 연산자처럼 좌에서 우로 연산을 수행합니다. 수식에서의 함수는 특정 셀을 참조하거나 상수값처럼 연산자의 연산대상이므로 함수의 결과 값이 어떤 데이터 타입인지를 파악하는 것이 중요하고 여러 함수가 연산자로 연결된다면 연산자 우선 순위와 연산 순서를 감안해서 수식을 작성해야 합니다.

728x90
댓글
글 보관함
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31