엑셀 TRUNC는 숫자의 특정 자리에서 절사를 하는 함수다. 일종의 꼬리자르기 정도로 이해하면 쉽다. 이 함수는 사실 rounddown 함수와 결과값은 동일하지만 좀 TRUNC가 더 융통적이고 사용법이 더 쉽다는 이점이 있다.
엑셀에는 워낙 많은 함수들이 있어서 비슷한 기능을 하는 함수들도 많다. 그래서 어떤 경우에는 선택적으로 함수를 사용할 수 있기 때문에 좀 더 익숙하고 편한 함수를 사용하면 된다. 또는 비슷한데 약간 차이가 나는 함수도 있다. 예를 들어 int 함수의 경우 trunc 함수와 결과 값에 있어 차이가 난다. 물론 INT 함수는 integer의 약자로 단순히 정수로만 표현하는 반면에 TRUNC 함수는 trancate의 약자로 절사한다는 의미가 있고 자리수를 지정해서 절사가 가능하다. 또한 의미적으로 보면 rounddown 함수는 0에 가까워지도록 내림을 하는 함수며 결과는 TRUNC 함수와 동일하다.(사용법에 있어 약간의 차이)
엑셀 TRUNC 로 숫자 절사하기
=TRUNC(숫자, 기준 자리수)
숫자를 기준 자리수에 따라서 절사를 하는데 기준 자리수 표현이 우리가 일반적으로 생각하는 표현과는 차이가 있다.
=TRUNC(77.777)은 =TRUNC(77.777, 0) 과 동일한 뜻으로 소수점 아래를 절사한다.
이를 기준으로 TRUNC 함수의 두 번째 인자가 1 증가할 때마다 소수점 아래로 한자리씩 내려가 절사한다.
=TRUNC(77.777, 1)의 결과는 77.7이 된다.
반대로 두 번째 인자가 1식 감소할 때마다 증가할 때와 반대방향으로 자리수가 이동되어 절사된다.
=TRUNC(77.77, -1) 의 결과는 70 이 된다.
엑셀 TRUNC와 ROUNDDOWN, INT 함수 와의 차이
① TRUNC 와 ROUNDDOWN은 사용방법은 거의 동일하며 결과는 똑같다.
유일한 차이점은 TRUNC는 2번째 인자를 생략하면 기본으로 0의 값을 갖는 반면에 ROUNDDOWN은 반드시 2번째 인자를 생략하면 안된다.
TRUNC(num) 또는 TRUNC(num, 0)
ROUNDDOWN(num, 0) 셋 모두 동일한 결과.
② TRUNC(num) 와 INT(num)의 차이점
이 둘의 결과는 양수에 대해 동작할 때는 동일하나 음수를 다룰 때는 다르다.
엑셀의 INT 함수에 대한 설명을 보면 "소수점 아래를 버리고 가장 가까운 정수로 내림합니다." 라고 나와 있다. 그런데 이 설명은 비록 그럴 듯 해 보이지만 번역상의 오류가 있는 듯 싶다.
INT(-55.12)의 예를 들어 먼저 소수점을 버려서 -55가 된다. 여기에서 가까운 정수로 내림을 하라는 뜻이 명확하지가 않다. -55보다 작은 정수로 내림을 해서 가장 가까운 정수 -56을 뜻하는 것일까? 그렇다면 INT(77.777)의 경우에는 76이 나와야 한다. 따라서 이 설명은 제대로 된 것이 아니다.
=INT(-55.12)
결과가 -55가 아닌 -56이 되는 이유는 INT 함수의 의미가 가장 가까운 정수로 내림을 하기 때문이다.
-55.12보다 작은 정수는 -56이므로 -55.12를 내림하면 -56이된다.
=INT(77.77)
77.777보다 작은 정수는 77이므로 내림을 하면 77이 된다.
마지막으로 ROUNDDOWN은 0에 가까운 정수로 내림을 하기 때문에 ROUNDDOWN(num,0)은 (양수, 음수 상관없이) 소수점 자리를 절사하는 TRUNC(num)과 동일한 결과를 갖는다.
이 세 함수의 미묘한 차이점을 제대로 이해하고 필요에 따라서 적절히 선택할 필요가 있다.