나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 조삿갓 (choga21)

추천:  2
파일:     조회:  3438
제목:   [강좌] 배열의 기초와 Array 함수
     
  1) 배열이란 번호가 붙은 변수입니다. 동일한 성격의 자료가 여러 개 존재하고,
   그 자료 집합에 대해 일정한 처리를 하려고 할 때 유용한 방법이지요.
   예를들어 한 학급 20명의 성적을 계산한다면
     Dim S(20) As Integer
   와 같이 대표 이름과 필요한 개수를 정하여 선언해 주고 
   1번 학생의 점수는 S(1), 2번 학생의 점수는 S(2)와 같이 쓸 수 있습니다.

2) 그런데 사실, 베이식을 비롯한 거의 모든 언어에서 배열을 지원하는데
   컴퓨터의 동작 특성상 위와 같이 선언하면 실제로는 21개의 저장공간이 만들어집니다.
   S(0) 즉, 번호를 1번부터가 아닌 0번부터 시작하기 때문이지요.

3) 물론 베이식에서는
     Dim S(1 To 20) As Integer
   와 같이 선언함으로써 0번이 생기는 것을 막고 1번부터 20번까지만 쓸 수 있습니다만
   저처럼 C, Pascal 등 고급언어들을 섭렵한 프로그래머들은
   차라리 0번을 그냥 쓰지 않은 채 내버려 두거나
   다른 목적으로 활용(만점을 저장하거나 총점을 저장하는 등)하는 기법을 좋아하고
   1 To 20과 같은 첨자 제한은 좀 회피하는 경향이 있답니다.

4) Dim 명령으로 배열을 선언하면 일단 모든 배열 원소들은 0으로 값이 초기화됩니다.
   거기에 각각 어떤 값을 대입하는 것은
      S(n) = 80
   과 같이 일일이 대입해 주어야 하고,
   반복 루프를 돌려서 파일에서 읽어오거나 해야 하지요.

5) 그런데 Array 함수는 배열 공간을 만들고 초기값까지 동시에 대입하는 편리한 함수입니다.
   단, 이 함수를 사용하려면 먼저 배열의 대표이름만 Dim 명령으로 선언하되
   Variant형 변수로 선언해야 합니다. 즉, 다음과 같이 사용합니다.
      Dim rBase As Variant
      rBase = Array(0, 20, 30, 120, 140, 110, 50, 20)
   이렇게 하면, Array 함수의 매개변수 값들이 차례대로
      rBase(0)=0, rBase(1)=20, rBase(2)=30, ...
   과 같이 초기화됩니다.
   Array 함수로 생성되는 배열은 무조건 0번부터 시작하고
   시작번호를 임의로 조정할 방법은 없습니다.

6) 활용 예
      Dim season As Variant
      Dim MonName As Variant
      season = Array(“봄”, “여름”, “가을”, “겨울”)
      MonName = Array(“Jan", "Feb", "Mar", "Apr", "May", "Jun", _
                            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec”)
   단, MonName(0)이 1월이 되는 어색함을 피하려면
      MonName = Array("",“Jan", "Feb", "Mar", "Apr", "May", "Jun", _
                            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec”)
   와 같이 정의하여 0월을 버리면 되지요.
 
[불량 게시물 신고]  
이정열이렇게 쉽게 설명이 가능하다니 대단하십니다.
array와 rnd 함수를 그렇게 검색을 해봐도 이렇게 머리에 꽂히는 강좌는 본적이 없네요.
정말 감사합니다.
10-13 (17:00)
삭제 ■신고
조삿갓감사합니다.
제가 쫌 한 강좌 하죠 ^^
10-19 (16:35)
삭제 ■신고
        
  

작성일 : 2017-10-12(22:13)
최종수정일 : 2017-10-12(22:19)
 


 ◎ 관련글

  제 목   작성자   날짜
엑셀 vba array함수와 rnd 함수 질문입니다. 이정열 2017-10-12
[강좌] 배열의 기초와 Array 함수 조삿갓 2017-10-12
[강좌] RND 함수 정복하기 조삿갓 2017-10-12