티스토리 뷰

엑셀 FLOOR 함수는 전달된 숫자를 0 의 방향으로 가장 가까운 배수에 내림한다. 내림이라 표현하였지만 함수에 적용하는 숫자가 양수라면 내림이 적용되고, 음수라면 올림이 적용된다. 0 의 방향으로 숫자를 변환하기 때문이다.

엑셀 FLOOR 함수 기본 설명

설명 : FLOOR 함수는 숫자( number 인수 )를 0 의 방향으로 가장 가까운 significance 인수의 배수에 라운딩( 내림/올림 )하는 함수이다.
구문 : FLOOR( number, significance )
인수 :
    number : 라운딩( 내림/올림 ) 되어질 숫자
    significance : number 인수가 라운딩될 기준 간격, 이 값의 배수로 내림된다.

    노트1 : 엑셀 2003 과 2007 버전에서는 significance 인수가 number 인수와 동일한 부호를 사용하여야 한다.
    참고1 : 엑셀 2010 이후 버전에서는 number 가 음수, significance 가 양수라도 처리 가능하다.
    이 경우 FLOOR 함수는 라운딩의 방향을 바꾼다. 즉, 0 에서 멀어지는 방향으로 라운딩 되는 것이다.

엑셀 FLOOR 함수 사용 예제

엑셀 FLOOR 함수는 지정 간격 단위로 내림하는 함수이다. 간격으로 사용되는 것은 2번째 인수이다. 사용예( 엑셀 2010 이상 버전 )를 살펴보자.

[그림1] 엑셀 FLOOR 함수로 배수 단위 내림하기[그림1] 엑셀 FLOOR 함수로 배수 단위 내림하기



사용 예제1 : =FLOOR( 30, 7 )
사용 결과1 : 28

FLOOR 함수의 number 인수로 30 이 전달되었다. 이 숫자는 내림될 숫자이다. 두번째 인수는 배수의 기준값, 즉 내림될 간격이다. 예제1 에서는 이 값으로 7 이 전달되었다. 이는 30 을 가장 가까운 7 의 배수로 내림한다는 의미이다. 30 에서 0 의 방향으로 가장 큰 7의 배수는 28 이다. 따라서 반환되는 결과는 28이 되는 것이다.

라운딩 함수이지만 자리수를 지정하는 ROUND 함수 계열들과는 방법이 다를 뿐이다. FLOOR 함수는 라운딩 단위를 배수의 기준값으로 지정한다는 것이 가장 중요한다.

사용 예제2 : =FLOOR( 30.12, 0.4 )
사용 결과2 : 30

30.12 를 보다 작은 가장 가까운 0.4 의 배수로 내림한다. 0.4 의 75 배인 30 이 결과로 반환된다. 이렇게 배수 간격이 라운딩에 사용되기에 ROUND 함수들로는 어려운 작업을 FLOOR 함수는 간단히 처리할 수 있다.

소수아래 1자리까지 표현하기를 원한다면 두번째 배수 기준 인수로 0.1 을 주면 될 것이다. 0.1 배 간격이 곧, 소수 1자리를 의미하기 때문이다.

사용 예제3 : =FLOOR( -32.75, -0.5 )
사용 결과3 : -32.5

라운딩할 값인 number 인수로 -32.75 의 음수가 전달되었다. 이때는 배수 기준 인수인 significance 도 음수로 전달하여야 한다. 그렇지 않다면 버전에 따라( 엑셀 2007 이전은 ) #NUM 오류가 발생된다.

위에서는 양수들이라 내림이라 표현되었지만 number 인수로 음수가 사용되면 올림으로 처리된다. 0 의 방향으로 라운딩되기 때문이다. 음수에서 0의 방향은 올림이 된다. 곧, -32.75 를 -0.5 의 65 배인 -32.5 로 올림하는 것이다.( 66 배수는 -33 이다. )

참고2 : 예제4 는 엑셀 2010 이상 버전이어야 오류없이 [그림1] 처럼 표시( 라운딩 방향이 0 에서 멀어지게 바뀜 )된다. 엑셀 2007 이전 버전은 #NUM! 오류를 발생한다.
참고3 : 예제5 는 모든 버전에서 #NUM! 오류가 생긴다. 부호가 다르고, 배수의 기준을 의미하는 significance 인수가 음수이기 때문이다.

사용 예제6 : =FLOOR( "08:17", TIME(0,15, 0) )
사용 결과6 : 오전 8:15:00

이제는 FLOOR 함수를 시간 간격 조정에 이용해 보자. 예제6 은 시간을 전달하고 15분 간격으로 내림한다. 시간은 직접 전달될 때 큰 따옴표로 묶어준다. 배수 기준은 TIME 함수를 이용하여 분 인수를 15로 설정하였다. 8시 17분 이 15분 간격으로 내림되는 것이다. 따라서, 결과는 8시 15분이 반환되는 것이다.

[엑셀 모바일] 시간 생성 TIME 함수 배우기 :
http://secstart.tistory.com/676

참고4 : 숫자의 부호에 상관없이 significance 의 배수로 내림하고 싶다면 FLOOR.PRECISE 함수를 사용한다. ( 엑셀 2010 이상 )
참고5 : 음수일때 원하는 방향으로 라운딩하려면 mode 인수가 추가되는 FLOOR.MATH 함수를 사용한다. ( 엑셀 2013 이상 )

엑셀 FLOOR 함수 오류

#NUM! 오류 :
    엑셀 2010 이후 버전 : number 인수가 양수이고 significance 인수가 음수라면 발생
    엑셀 2007 이전 버전 : number 인수와 significance 인수의 부호( + , - )가 다르다면 발생
#DIV/0! 오류 : significance 인수가 0 이라면 발생( 0 의 배수를 계산할 수 없기에 )
#VALUE! 오류 : 인수 중 하나 이상이 비수치라면 발생


엑셀 FLOOR 함수의 배수 간격을 이용한 또 다른 라운딩 방법을 익혀 적절한 여러 상황에 활용해 보자. 날짜나 시간 간격을 처리할 때 활용도가 높을 것으로 보인다.

라운딩 관련 함수 :
[엑셀 함수] 수치를 반올림하여 문자열 반환, FIXED 함수 :
http://secstart.tistory.com/588
[엑셀 모바일] TRUNC 함수로 지정 자리수에서 버림 :
http://secstart.tistory.com/731
엑셀 ROUNDDOWN 함수로 자리수 내림하기 :
http://secstart.tistory.com/733
엑셀 ROUNDUP 함수로 자리수 올림하기 :
http://secstart.tistory.com/734
엑셀 ROUND 함수로 자리수 반올림하기 :
http://secstart.tistory.com/732

마늘빵.


댓글