나만의공간

📘 엑셀 고급 강의 15‑2. 다중 인수 UDF 및 배열 기반 결과 반환 실습 본문

Excel/고급

📘 엑셀 고급 강의 15‑2. 다중 인수 UDF 및 배열 기반 결과 반환 실습

밥알이 2025. 8. 7. 06:51

📘 엑셀 고급 강의 15‑2. 다중 인수 UDF 및 배열 기반 결과 반환 실습

이번 소주제에서는 **여러 인수를 받는 UDF**와 **동적 배열 형태로 결과를 반환하는 UDF** 작성 방법을 실습합니다. 배열 기반 결과는 FILTER, UNIQUE 같은 동적 배열 함수와 연동할 때 유용합니다.


1. 다중 인수 UDF 작성 예제

Function SumThree(a As Double, b As Double, c As Double) As Double
    SumThree = a + b + c
End Function
  • 예: 셀에서 =SumThree(A2, B2, C2) 입력 시 세 셀 값을 합산하여 반환
  • 여러 요소를 하나 함수로 처리할 수 있으므로 수식 단순화에 유용

2. 배열 결과 반환 UDF 예제

Function GenSequence(startVal As Long, count As Long) As Variant
    Dim arr() As Long
    ReDim arr(1 To count, 1 To 1)
    Dim i As Long
    For i = 1 To count
        arr(i, 1) = startVal + i - 1
    Next i
    GenSequence = arr
End Function
  • 예: 셀에 =GenSequence(5, 10) 입력 → 5부터 시작하는 10개 숫자를 배열로 반환
  • 동적 배열 수식 구조와 연결하여 대시보드나 보고서 구성에 활용 가능

3. 실무 예제 – 날짜 목록 생성 함수

Function ListDates(startDate As Date, daysCount As Long) As Variant
    Dim arr() As Variant
    ReDim arr(1 To daysCount, 1 To 1)
    Dim i As Long
    For i = 1 To daysCount
        arr(i, 1) = DateAdd("d", i - 1, startDate)
    Next i
    ListDates = arr
End Function
  • 예: =ListDates(Date(2025,8,1), 7) → 2025‑08‑01부터 일주일 날짜 배열 생성
  • 대시보드에서 날짜 시퀀스가 자동 확장되어 필요한 기능과 조합 가능

4. 실무 팁 및 주의사항

  • UDF에서 배열을 반환할 때는 반환 자료형을 Variant로 선언해야 오류 없이 동작합니다.
  • 함수 실행 시 Excel 셀에서 스필(SPILL)되는 공간이 빈지 확인하세요.
  • 인수가 많은 UDF는 사용자가 헷갈릴 수 있으므로 함수 설명 텍스트나 도움말 포함 권장
  • 배열 반환 UDF는 동적 배열 수식(FILTER, UNIQUE 등)과 함께 활용 시 효과적입니다.

5. 요약 정리

  • ✅ 다중 인수 UDF는 여러 입력값을 처리하는 로직을 단일 함수로 구현할 수 있습니다.
  • ✅ 배열 반환 UDF는 동적 데이터를 배열 형태로 직접 반환하여 보고서 구성에 유용합니다.
  • ✅ 반환형은 Variant, SPILL 공간 확보, 인수 설명 등은 안정적 사용을 위해 필수입니다.
Comments