Excel에서 사용자 지정 함수의 장단점

  • 이 공유
Michael Brown

사용자 정의 함수에 대한 자습서 시리즈를 계속하고 있습니다. 이전 기사에서 사용자 정의 기능에 대해 알아보고 이를 작성하고 사용하는 방법을 배웠습니다. 이 설명서에서는 이러한 기능을 사용하는 세부 사항을 살펴보고 UDF와 VBA 매크로의 차이점을 확인합니다.

이 자습서에서는 다음 내용을 배웁니다.

    이 기사가 UDF에 대한 지식을 높이고 Excel 통합 문서에서 UDF를 더욱 효과적으로 사용하는 데 도움이 되기를 바랍니다.

    UDF와 매크로는 같은 것입니까?

    사용자 정의 함수와 VBA 모두 매크로는 VBA 편집기를 사용하여 생성됩니다. 그들 사이의 차이점은 무엇이며 무엇을 선호합니까?

    가장 중요한 차이점은 함수가 계산을 수행하고 매크로가 일부 작업을 수행한다는 것입니다. 일반 Excel 함수와 마찬가지로 사용자 정의 함수는 셀에 작성해야 합니다. 실행 결과 셀은 일부 값을 반환합니다. 동시에 다른 셀의 값과 현재 셀의 일부 속성(특히 서식 지정)을 변경할 수 없습니다. 그러나 조건부 서식 수식에서 사용자 지정 함수를 사용할 수 있습니다.

    UDF 및 VBA 매크로는 서로 다른 방식으로 작동합니다. 예를 들어 Visual Basic Editor에서 UDF를 만들 때 Function 문으로 시작하고 End Function 문으로 끝납니다. 매크로를 기록할 때문 Sub End Sub.

    모든 Visual Basic 연산자를 사용하여 UDF를 생성할 수 있는 것은 아닙니다. 이러한 이유로 매크로는 보다 다재다능한 솔루션입니다.

    매크로는 사용자 정의 함수와 달리 사용자가 인수를 전달할 필요가 없으며 어떤 인수도 허용할 수 없습니다.

    요점은 매크로의 일부 명령이 셀 주소 또는 서식 요소(예: 색상)를 사용할 수 있다는 것입니다. 셀을 이동하고, 행과 열을 추가하거나 제거하고, 셀 형식을 변경하면 매크로를 쉽게 "중단"할 수 있습니다. 이것은 매크로가 어떻게 작동하는지 모르는 동료와 파일을 공유하는 경우에 특히 가능합니다.

    예를 들어 완벽하게 작동하는 매크로가 있는 파일이 있습니다. 이 수식은 셀 A1에서 A4까지의 백분율을 계산합니다. 매크로는 이러한 셀의 색상을 노란색으로 변경합니다. 활성 셀에 백분율 형식이 설정됩니다.

    귀하 또는 다른 사람이 새 행을 삽입하기로 결정하면 매크로는 계속해서 A4 셀( UDF의 4,1 매개변수), 실패하고 오류를 반환합니다.

    이 경우 0으로 나누기 때문에 오류가 발생했습니다(새로 추가된 열). 매크로가 합산을 수행하는 경우 잘못된 결과를 얻게 됩니다. 그러나 당신은 그것에 대해 알지 못할 것입니다.

    매크로와 달리 사용자 정의 함수는 이러한 불쾌한 상황을 유발할 수 없습니다.

    아래에서 성능을 볼 수 있습니다.UDF를 사용하여 동일한 계산. 여기에서 워크시트의 아무 곳이나 입력 셀을 지정할 수 있으며 변경할 때 예기치 않은 문제가 발생하지 않습니다.

    C3에 다음 수식을 작성했습니다.

    =UDF_vs_Macro(A1,A4)

    그런 다음 빈 행을 삽입했고 위의 스크린샷과 같이 수식이 변경되었습니다.

    이제 입력 셀이나 함수가 있는 셀을 어디로든 이동할 수 있습니다. 결과는 항상 정확합니다.

    UDF 사용의 또 다른 이점은 입력 셀의 값이 변경될 때 자동으로 업데이트된다는 것입니다. 매크로를 사용할 때는 항상 모든 데이터가 최신 상태인지 확인해야 합니다.

    이 예를 염두에 두고 가능하면 UDF를 사용하고 다른 비계산 활동에만 매크로를 사용하는 것이 좋습니다.

    UDF 사용의 한계와 단점

    앞서 UDF의 장점에 대해 언급했습니다. 간단히 말해서 표준 Excel 기능으로는 불가능한 계산을 수행할 수 있습니다. 또한 길고 복잡한 수식을 저장하여 사용할 수 있어 하나의 함수로 변환할 수 있습니다. 복잡한 수식을 반복해서 작성할 필요가 없습니다.

    이제 UDF의 단점에 대해 자세히 알아보겠습니다.

    • UDF를 만들려면 VBA를 사용해야 합니다. 주위에 방법이 없습니다. 이는 사용자가 Excel 매크로와 동일한 방식으로 UDF를 기록할 수 없음을 의미합니다. UDF를 직접 만들어야 합니다. 그러나 복사 및이전에 기록한 매크로 코드의 일부를 함수에 붙여넣습니다. 사용자 지정 함수의 제한 사항만 알고 있으면 됩니다.
    • UDF의 또 다른 단점은 다른 Excel 함수와 마찬가지로 단일 값 또는 값 배열만 셀에 반환할 수 있다는 것입니다. 단순히 계산만 수행합니다.
    • 통합 문서를 동료와 공유하려면 UDF를 같은 파일에 저장해야 합니다. 그렇지 않으면 사용자 지정 함수가 작동하지 않습니다.
    • VBA 편집기로 만든 사용자 지정 함수는 일반 함수보다 느립니다. 이것은 큰 테이블에서 특히 두드러집니다. 불행히도 VBA는 지금까지 매우 느린 프로그래밍 언어입니다. 따라서 데이터가 많을 경우 가능하면 표준 함수를 사용하거나 LAMBDA 함수를 사용하여 UDF를 생성해 보십시오.

    사용자 지정 함수 제한:

    • UDF는 계산을 수행하고 값을 반환하도록 설계되었습니다. 매크로 대신 사용할 수 없습니다.
    • 다른 셀의 내용은 변경할 수 없습니다(활성 셀만 해당).
    • 함수 이름은 특정 규칙을 따라야 합니다. 예를 들어 기본 Excel 함수 이름 또는 셀 주소(예: AB123)와 일치하는 이름을 사용할 수 없습니다.
    • 사용자 지정 함수는 이름에 공백을 포함할 수 없지만 밑줄 문자는 포함할 수 있습니다. 그러나 선호되는 방법은 각각의 새로운 시작 부분에 대문자를 사용하는 것입니다.단어(예: GetMaxBetween).
    • UDF는 셀을 복사하여 워크시트의 다른 영역에 붙여넣을 수 없습니다.
    • 활성 워크시트를 변경할 수 없습니다.
    • UDF는 ' t 활성 셀의 서식을 변경합니다. 다른 값을 표시할 때 셀의 서식을 변경하려면 조건부 서식을 사용해야 합니다.
    • 추가 장부를 열 수 없습니다.
    • Application.OnTime을 사용하여 매크로를 실행하는 데 사용할 수 없습니다. .
    • 매크로 레코더를 사용하여 사용자 정의 함수를 만들 수 없습니다.
    • 함수는 Developer > 매크로 대화 상자.
    • 함수는 대화 상자( 삽입 > 함수 )와 공용<7으로 선언된 경우에만 함수 목록에 나타납니다> (별도의 언급이 없는 한 기본값입니다.)
    • Private 로 선언된 기능은 기능 목록에 나타나지 않습니다.

    매우 느린 작업 , 그리고 사용상의 일부 제한 사항으로 인해 "이 사용자 정의 기능의 용도는 무엇입니까?"

    이 기능은 유용할 수 있으며 적용되는 제약 사항을 염두에 둔다면 유용할 수 있습니다. UDF를 올바르게 만들고 사용하는 방법을 배우면 함수 라이브러리를 작성할 수 있습니다. 이렇게 하면 Excel에서 데이터로 작업하는 능력이 크게 확장됩니다.

    저에게는 사용자 지정 함수가 시간을 크게 절약해 줍니다. 너는 어떄? 이미 자신만의 UDF를 만들어 보셨습니까? 당신은 그것을 좋아 했습니까기본 Excel 기능보다 낫습니까? 댓글에서 토론해 봅시다 :)

    Michael Brown은 소프트웨어 도구를 사용하여 복잡한 프로세스를 단순화하려는 열정을 가진 열성적인 기술 애호가입니다. 기술 산업에서 10년 이상의 경험을 쌓은 그는 Microsoft Excel 및 Outlook은 물론 Google 스프레드시트 및 문서 도구에 대한 기술을 연마했습니다. Michael의 블로그는 자신의 지식과 전문 지식을 다른 사람과 공유하는 데 전념하며 따라하기 쉬운 팁과 생산성 및 효율성 향상을 위한 자습서를 제공합니다. 노련한 전문가이든 초보자이든 Michael의 블로그는 이러한 필수 소프트웨어 도구를 최대한 활용하기 위한 귀중한 통찰력과 실용적인 조언을 제공합니다.