국민 코딩 시대 엑셀 VBA 기초 13 - 내장 함수(수치형 함수)

Описание к видео 국민 코딩 시대 엑셀 VBA 기초 13 - 내장 함수(수치형 함수)

국민 코딩 시대 엑셀 VBA 기초 13 - 내장 함수(수치형 함수)

이전 블로그에서 "WorksheetFunction" VBA의 내장 함수를 호출하는 개체를 사용하여, 엑셀에서 사용하는 " Sum, Average, Count, Max, Min, Fixed, Round, Floor, Ceiling"등의 메서드를 사용하는 방법에 대해 알아보았었는데요.

이번에 설명하는 함수들은 VBA이 내장형 함수로 "WorksheetFunction" 없이 단독으로 사용하며, 특히 거의 대부분 엑셀에서 사용 중인 함수와 명칭과 사용방법이 동일하기 때문에 엑셀에서 알고 있었던, VBA에서 알고 있었던 상호 호환이 됩니다.

VBA 내장 함수는 수치형 함수와 문자형 함수, 날짜형 함수로 구분하여 블로그를 진행합니다.

수치형 함수

1. 정수화 함수
가. 정수화 함수 Int
정수화 함수 Int는 "Int(인수)"에서 인수에 대한 정수형 수치를 반환하는 함수로 엑셀에서도 동일하게 사용하고 있습니다.
형식 : Int(Number)
의미 : Number 가 0보다 크면 소수 이하를 무시하고, Number 가 0보다 작으면 실수 Number 보다 하나 낮은 정숫값을 반환합니다.

나. 정수화 함수 Fix
Int와 Fix 둘 다 정수화 함수지만 Int는 인수가 음수일 경우 인수보다 하나 작은 정수를 반환하고, Fix는 인수가 음수이건 양수이건 상관없이 소수부를 절삭하기 때문에, 코딩 시 음수 데이터를 다루는 경우 정수화 함수를 선택 시 Int와 FIx의 특징을 살펴보고 선택을 하여야 합니다.
형식 : Fix(Number)
의미 : Fix함수는 Int와는 달리 인수의 소수 이하는 무조건 절삭합니다.

엑셀에서는 VBA의 Int를 그대로 사용할 수 있으며, VBA의 Fix는 엑셀의 Trunc와 동일한 기능을 갖고 있습니다.

다. 소수부 반올림 처리 Round
Int와 Fix는 소수부를 절삭하여 정수 부분만 반환하지만 때에 따라서 소수부에서 사사오입을 한 결과를 구해야 하는 경우 Round 함수를 사용하며, Round 함수는 지정한 Number에서 DecimalPlace + 1 번째 자리서 반올림하여 소수부를 DecimalPlace 자리까지 표현합니다.
형식 : Round(Number, DecimalPlace)
의미 : 인수 Number의 DecimalPlace + 1 위치에서 반올림하여 소수부 DecimalPlac 자리까지 결과를 반환합니다.

아래의 코드에서 변수 A0은 "Round(A, 0)"에 의해 소수부 첫 자리에서 반올림하여 정수부를 반환하고, A4는 소수부 4 + 1번째에서 반올림하여야 하는데, 소수부 전체 자리가 4자리인 관계로 2024.5555를 그대로 반환합니다.
.
엑셀에서도 Round 함수를 VBA 형식과 동일하게 사용할 수 있습니다.


2. 수치형 문자를 수치형으로 변환
가. 수치형 문자를 수치형으로 변환 VAL
형식 : Val(String Number)
의미 : 인수 수치형 문자를 수치형으로 반환합니다.
수치형 문자란 "2024 년"과 같이 숫자로 되어 있는 문자를 의미합니다.
만약 변수 A에 A = "2024"같이 할당 하였다면 변수 A는 수치형 문자를 갖게 되어, 만약 A + A와 같이 연산을 한다면 "20242024"와 같은 결과가 나오고 이것은 A&A와 같은 의미가 됩니다.

이와 같이 수치형 문자로 되어 있는 것을 수치형으로 변환 시켜주는 함수가 VAL이며, "VAL(A) + VAL(A)"의 결과는 4048이 될 것입니다.

엑셀에서도 VBA의 VAL 함수를 "VALUE"로 사용하며, 결과는 VBA와 동일합니다.

나. 수치형을 문자형으로 변환 Str
Str 함수는 Val 함수와 반대로 수치형 데이터를 문자형으로 반환 시키는 함수입니다.
형식 : Str(Number)
의미 : 인수 수치형을 문자형으로 반환합니다.
"Str(A) + Str(A)"의 결과는  "Str(A) & Str(A) "와 같은 2024 2024가 될것입니다.

4. 난수 RND
Rnd 함수는 0과 1 사이의 난수(무작위 수)를 반환, 엑셀에서는 "RAND"함수가 동일한 기능을 갖습니다.

Rnd 함수가 0과 1 사이의 난수를 발생시키기 때문에 Rnd(1)의 결과는 0.3987 이런 식으로 0보다 크고 1보다는 작은 수가 반환되기 때문에,
형식 : Rnd(Number)
의미 : 0보다 크고 1보다 작은(0≥ 1 ≤) 난수를 반환합니다.
"A = Int(Rnd(1)*10)"과 같이 난수를 조립하면 0 보다 크고 10 보다 작은 정수 난수가 발생 되기 때문에, 만약 1부터 10까지(1≤ A ≤10) 정수 난수를 발생시키고자 한다면 "A=Int(Rnd(1)*10+1)"와 같이 조립합니다.

그러면 윷놀이의 경우 수를 보면 "도, 개, 걸, 윷, 모" 5가지의 경우 수가 나오니,"A=Int(Rnd(1)* 5+1)"과 같이 조립하면 되겠습니다.

Rnd 함수를 사용해 윷놀이 게임을 보았는데요,

코딩 내용 중 "Randomize"는 난수 발생을 초기화 시켜 주는 기능을 갖습니다.

윷놀이 게임과 마찬가지로 동전 던지기, 주사위 던지기, 로또복권 번호 발행기 등을 만들어 볼 수 있습니다.
==============
참고 : 네이버 블로그 -
국민 코딩 시대 엑셀 VBA 기초 13 - 내장 함수(수치형 함수)
https://blog.naver.com/jxbjultd/22345...

Комментарии

Информация по комментариям в разработке