배열 수식 지침 및 예제

적용 대상
Microsoft 365용 Excel Mac용 Microsoft 365용 Excel Excel 2024 Mac용 Excel 2024 Excel 2021 Mac용 Excel 2021 Excel 2019 Excel 2016 iPad용 Excel iPhone용 Excel

배열 수식은 배열의 하나 이상의 항목에 대해 여러 계산을 수행할 수 있는 수식입니다. 배열을 값이 있는 행이나 열, 또는 값으로 구성된 행과 열의 조합으로 생각할 수 있습니다. 배열 수식은 여러 결과 또는 단일 결과를 반환할 수 있습니다.

Microsoft 365용 2018년 9월 업데이트부터 여러 결과를 반환할 수 있는 모든 수식은 결과를 자동으로 아래로 분산하거나 인접한 셀로 분산합니다. 이러한 동작 변화에는 몇 가지 새로운 동적 배열 함수도 함께 제공됩니다. 기존 함수를 사용하든 동적 배열 함수를 사용하든 동적 배열 수식은 단일 셀에 입력한 다음 Enter 키를 눌러 확인하기만 하면 됩니다. 이전에는 기존 배열 수식을 사용하려면 먼저 전체 출력 범위를 선택한 다음 Ctrl+Shift+Enter를 사용하여 수식을 확인해야 했습니다. 일반적으로 CSE 수식이라고 합니다.

배열 수식을 사용하여 다음과 같은 복잡한 작업을 수행할 수 있습니다.

  • 샘플 데이터 세트를 빠르게 만들 수 있습니다.
  • 셀 범위에 포함된 문자 수를 계산합니다.
  • 범위의 가장 낮은 값이나 상한과 하한값 사이에 있는 숫자와 같은 특정 조건을 충족하는 숫자만 합산합니다.
  • 값 범위에서 N번째 값마다 합산합니다.

다음 예제에서는 다중 셀 및 단일 셀 배열 수식을 만드는 방법을 보여 줍니다. 가능한 경우 일부 동적 배열 함수의 예제뿐만 아니라 동적 및 레거시 배열로 입력된 기존 배열 수식을 포함했습니다.

예제 다운로드

이 문서의 모든 배열 수식 예제가 포함된 예제 통합 문서를 다운로드하세요.

다중 셀 및 단일 셀 배열

이 연습에서는 다중 셀 및 단일 셀 배열 수식을 사용하여 판매액 수치 집합을 계산하는 방법을 보여 줍니다. 첫 번째 단계 집합에서는 다중 셀 수식을 사용하여 부분합 집합을 계산합니다. 두 번째 집합은 단일 셀 수식을 사용하여 총합계를 계산합니다.

  • 다중 셀 배열 수식
    셀 H10 =F10:F19*G10:G19의 다중 셀 배열 함수를 사용하여 단가로 판매된 자동차 수를 계산합니다.

  • 여기서는 셀 H10에 =F10:F19*G10:G19 를 입력하여 각 판매원의 쿠페 및 세단의 총 판매액을 계산합니다.
    Enter 키를 누르면 결과가 H10:H19 셀로 분산되는 것을 볼 수 있습니다. 엎지른 범위 내의 셀을 선택하면 엎지른 범위가 테두리로 강조 표시됩니다. H10:H19 셀의 수식이 회색으로 표시될 수도 있습니다. 참조용으로만 있으므로 수식을 조정하려면 master 수식이 있는 H10 셀을 선택해야 합니다.

  • 단일 셀 배열 수식
    =SUM(F10:F19*G10:G19)을 사용하여 총합계를 계산하는 단일 셀 배열 수식
    예제 통합 문서의 H20 셀에 =SUM(F10:F19*G10:G19)을 입력하거나 복사하여 붙여넣은 다음 Enter 키를 누릅니다.
    이 경우 Excel은 배열(셀 범위 F10부터 G19까지)의 값을 곱한 다음 SUM 함수를 사용하여 합계를 더합니다. 결과에는 판매량 총합계 1,590,000,000이 표시됩니다.
    이 예제에서는 배열 수식의 기능이 얼마나 강력한지를 잘 보여 줍니다. 예를 들어 1,000개의 데이터 행이 있다고 가정해 봅니다. 이 경우 수식을 1,000개의 행 아래로 끌어다 놓는 대신 단일 셀에 배열 수식을 만들어 이 데이터의 전부 또는 일부에 대한 합계를 계산할 수 있습니다. 또한 H20 셀의 단일 셀 수식은 다중 셀 수식(H10 셀부터 H19 셀까지의 수식)과 완전히 독립적입니다. 이는 배열 수식을 사용하여 얻을 수 있는 또 다른 이점인 유연성을 나타냅니다. H20의 수식에 영향을 주지 않고 H 열의 다른 수식을 변경할 수 있습니다. 결과의 정확성을 확인하는 데 도움이 되므로 이와 같은 독립적인 합계를 사용하는 것도 좋은 습관이 될 수 있습니다.

  • 동적 배열 수식에는 다음과 같은 장점도 있습니다.

    • 일관성 H10 아래쪽으로 셀을 클릭하면 동일한 수식이 표시됩니다. 이러한 일관성은 정확성을 더욱 높여 줄 수 있습니다.
    • 안전 다중 셀 배열 수식의 구성 요소는 덮어쓸 수 없습니다. 예를 들어 H11 셀을 클릭하고 Delete 키를 누릅니다. Excel은 배열의 출력을 변경하지 않습니다. 변경하려면 배열의 왼쪽 위 셀 또는 H10 셀을 선택해야 합니다.
    • 파일 크기 작음 여러 개의 중간 수식 대신 단일 배열 수식을 사용할 수 있는 경우가 많습니다. 예를 들어 자동차 판매 예제는 하나의 배열 수식을 사용하여 열 E의 결과를 계산합니다. =F10*G10, F11*G11, F12*G12 등과 같은 표준 수식을 사용한 경우 11개의 서로 다른 수식을 사용하여 동일한 결과를 계산했을 것입니다. 별거 아니지만, 수천 개의 행을 합쳐야 한다면 어떨까요? 그러면 큰 차이를 만들 수 있습니다.
    • 효율성 배열 함수는 복잡한 수식을 만드는 효율적인 방법이 될 수 있습니다. 배열 수식 =SUM(F10:F19*G10:G19)은 =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19)과 같습니다.
    • 유출 동적 배열 수식은 자동으로 출력 범위로 분산됩니다. 원본 데이터가 Excel 표에 있는 경우 데이터를 추가하거나 제거할 때 동적 배열 수식의 크기가 자동으로 조정됩니다.
    • #분산! 오류 수정 동적 배열로 인해 의도한 유출 범위가 어떤 이유로 차단되었음을 나타내는 #SPILL! 오류가 발생했습니다. 차단을 resolve하면 수식이 자동으로 분산됩니다.

1차원 및 2차원 배열 상수 만들기

배열 상수는 배열 수식의 구성 요소입니다. 항목 목록을 입력한 다음 수동으로 목록을 중괄호({ })로 묶어 배열 상수를 만듭니다.

={1,2,3,4,5} 또는 ={"January","February","March"}

쉼표를 사용하여 항목을 구분하는 경우 가로 배열(행)이 만들어집니다. 세미콜론을 사용하여 항목을 구분하는 경우 세로 배열(열)이 만들어집니다. 2차원 배열을 만들려면 각 행의 항목을 쉼표로 구분하고 각 행을 세미콜론으로 구분합니다.

다음 절차에 따라 가로, 세로 및 2차원 상수 만드는 방법을 연습해 봅니다. SEQUENCE 함수를 사용하여 배열 상수와 수동으로 입력한 배열 상수를 자동으로 생성하는 예제를 보여 드리겠습니다.

  • 가로 상수 만들기
    이전 예제의; 통합 문서를 사용하거나 새 통합 문서를 만듭니다. 빈 셀을 선택하고 =SEQUENCE(1,5)를 입력합니다. SEQUENCE 함수는 ={1,2,3,4,5}와 동일한 1행 x 5열 배열을 작성합니다. 다음 결과가 표시됩니다.
    =SEQUENCE(1,5) 또는 =를 사용하여 가로 배열 상수 만들기{1,2,3,4,5}
  • 세로 상수 만들기
    아래에 공간이 있는 빈 셀을 선택하고 =SEQUENCE(5) 또는 ={1; 2; 3; 4; 5}입니다. 다음 결과가 표시됩니다.
    =SEQUENCE(5) 또는 ={1; 2; 3; 4; 5}
  • 2차원 상수 만들기
    오른쪽과 아래에 공간이 있는 빈 셀을 선택하고 =SEQUENCE(3,4)를 입력합니다. 다음과 같은 결과가 나타납니다.
    =SEQUENCE(3,4)를 사용하여 3행 x 4열 배열 상수를 만듭니다.
    또는 ={1,2,3,4;를 입력할 수도 있습니다. 5,6,7,8; 9,10,11,12}이지만 세미콜론과 쉼표를 어디에 넣어야 하는지 주의해야 합니다.
    보시다시피 SEQUENCE 옵션은 배열 상수 값을 수동으로 입력하는 것보다 훨씬 더 많은 이점을 제공합니다. 주로 시간을 절약하지만 수동 입력으로 인한 오류를 줄이는 데에도 도움이 될 수 있습니다. 특히 세미콜론은 쉼표 구분 기호와 구별하기 어려울 수 있으므로 읽기가 더 쉽습니다.

배열 상수 구문

다음은 배열 상수를 더 큰 수식의 일부로 사용하는 예제입니다. 샘플 통합 문서에서 수식 워크시트의 상수 로 이동하거나 새 워크시트를 만듭니다.

D9 셀에 =SEQUENCE(1,5,3,1)를 입력했지만 A9:H9 셀에 3, 4, 5, 6, 7을 입력할 수도 있습니다. 그 특정 숫자 선택에 특별한 것은 없으며 차별화를 위해 1-5 이외의 것을 선택했습니다.

셀 E11에 =SUM(D9:H9*SEQUENCE(1,5)) 또는 =SUM(D9:H9*{1,2,3,4,5})을 입력합니다. 수식은 85를 반환합니다.

수식에 배열 상수를 사용합니다. 이 예제에서는 =SUM(D9:H(*SEQUENCE(1,5))을 사용했습니다.

SEQUENCE 함수는 배열 상수 {1,2,3,4,5}와 동등한 값을 작성합니다. Excel은 먼저 괄호로 묶인 식에 대한 작업을 수행하므로 다음으로 중요한 두 요소는 D9:H9의 셀 값과 곱하기 연산자(*)입니다. 이 시점에서 수식은 저장된 배열의 값에 상수의 해당 값을 곱합니다. 다음과 동일합니다.

=SUM(D9*1,E9*2,F9*3,G9*4,H9*5) 또는 =SUM(3*1,4*2,5*3,6*4,7*5)

마지막으로 SUM 함수는 값을 더하여 85를 반환합니다.

저장된 배열을 사용하지 않고 작업을 완전히 메모리에 유지하려면 다른 배열 상수로 바꿀 수 있습니다.

=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)) 또는 =SUM({3,4,5,6,7}*{1,2,3,4,5})

배열 상수에서 사용할 수 있는 요소

  • 배열 상수에는 숫자, 텍스트, 논리값(예: TRUE, FALSE) 및 오류 값(예: #N/A)이 포함될 수 있습니다. 숫자는 정수, 10진수 및 지수 형식으로 사용할 수 있습니다. 텍스트를 포함하는 경우 따옴표("텍스트")로 묶어야 합니다.
  • 배열 상수에는 추가 배열, 수식 또는 함수가 포함될 수 없습니다. 즉, 쉼표나 세미콜론으로 구분된 텍스트나 숫자만 포함할 수 있습니다. {1,2,A1:D4} 또는 {1,2,SUM(Q2:Z8)}과 같은 수식을 입력하면 Excel에 경고 메시지가 표시됩니다. 또한 숫자 값에는 백분율 기호, 달러 기호, 쉼표 또는 괄호를 사용할 수 없습니다.

배열 상수 이름 지정

배열 상수를 사용하는 가장 좋은 방법 중 하나는 이름을 지정하는 것입니다. 이름이 지정된 상수는 사용하기 쉽고 다름 사용자에게 일부 복잡한 배열 수식을 숨길 수 있습니다. 배열 상수의 이름을 지정하여 수식에서 사용하려면 다음을 실행합니다.

수식으로 이동:>정의된 이름,>정의 이름. 이름 상자에 Quarter1을 입력합니다. 참조 대상 상자에 괄호와 함께 다음 상수를 입력합니다.

={"1월","2월","3월"}

이제 대화 상자가 다음과 같이 표시됩니다.

수식 > 에서 명명된 배열 상수 추가 정의된 이름 > 이름 관리자 > 새로 만들기

확인을 클릭한 다음 빈 셀이 세 개 있는 행을 선택하고 =Quarter1을 입력합니다.

다음 결과가 표시됩니다.

수식에 =Quarter1과 같이 명명된 배열 상수를 사용합니다. 여기서 Quarter1은 ={January,February,March}로 정의되었습니다

결과가 가로가 아닌 세로로 분산되도록 하려면 TRANSPOSE(Quarter1)를 사용할= 수 있습니다.

재무제표를 작성할 때 사용하는 것처럼 12개월 목록을 표시하려는 경우 SEQUENCE 함수를 사용하여 현재 연도를 기준으로 할 수 있습니다. 이 함수의 멋진 점은 월만 표시되지만 다른 계산에 사용할 수 있는 유효한 날짜가 뒤에 있다는 것입니다. 예제 통합 문서의 명명된 배열 상수빠른 예제 데이터 세트 워크시트에서 이러한 예제를 찾을 수 있습니다.

=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"MMM")

TEXT, DATE, YEAR, TODAY 및 SEQUENCE 함수를 조합하여 12개월의 동적 목록을 작성

DATE 함수를 사용하여 현재 연도를 기반으로 날짜를 만들고, SEQUENCE는 1월부터 12월까지의 배열 상수를 만든 다음, TEXT 함수는 표시 형식을 "mmm"(1월, 2월, 3월 등)으로 변환합니다. 1월과 같이 전체 월 이름을 표시하려면 "mmmm"을 사용합니다.

이름이 지정된 상수를 배열 수식으로 사용하는 경우 Quarter1뿐만 아니라 =Quarter1과 같이 등호를 입력해야 합니다. 이렇게 하지 않으면 Excel에서 배열을 텍스트 문자열로 해석하고 수식이 예상대로 작동하지 않습니다. 마지막으로, 함수, 텍스트 및 숫자의 조합을 사용할 수 있습니다. 그것은 모두 당신이 얼마나 창의적이고 싶은지에 달려 있습니다.

배열 상수 작업

다음 예제에서는 배열 수식에서 배열 상수를 사용할 수 있는 몇 가지 방법을 보여 줍니다. 일부 예제에서는 TRANSPOSE 함수 를 사용하여 행을 열로 또는 그 반대로 변환합니다.

  • 배열의 각 항목을 여러 번 입력
    =SEQUENCE(1,12)*2 또는 ={1,2,3,4;를 입력합니다. 5,6,7,8; 9,10,11,12}*2
    (/)로 나누고, (+)로 더하고, (-)로 뺄 수도 있습니다.
  • 배열의 항목 제곱
    =SEQUENCE(1,12)^2 또는 ={1,2,3,4;를 입력합니다. 5,6,7,8; 9,10,11,12}^2
  • 배열에서 제곱 항목의 제곱근 찾기
    =SQRT(SEQUENCE(1,12)^2) 또는 =SQRT({1,2,3,4; 5,6,7,8; 9,10,11,12}^2)
  • 1차원 행 바꾸기
    =TRANSPOSE(SEQUENCE(1,5)) 또는 =TRANSPOSE({1,2,3,4,5})를 입력합니다.
    가로 배열 상수를 입력한 경우에도 TRANSPOSE 함수는 배열 상수를 열로 변환합니다.
  • 1차원 열 바꾸기
    =TRANSPOSE(SEQUENCE(5,1)) 또는 =TRANSPOSE({1; 2; 3; 4; 5})
    세로 배열 상수를 입력한 경우에도 TRANSPOSE 함수는 상수를 행으로 변환합니다.
  • 2차원 상수 행/열 바꿈
    =TRANSPOSE(SEQUENCE(3,4)) 또는 =TRANSPOSE({1,2,3,4; 5,6,7,8; 9,10,11,12})
    TRANSPOSE 함수는 각 행을 일련의 열로 변환합니다.

기본 배열 수식 사용

이 섹션에서는 기본 배열 수식에 대한 예제를 제공합니다.

  • 기존 값에서 배열 만들기
    다음 예제에서는 배열 수식을 사용하여 기존 배열에서 새 배열을 만드는 방법을 설명합니다.
    =SEQUENCE(3,6,10,10) 또는 ={10,20,30,40,50,60;을 입력합니다. 70,80,90,100,110,120; 130,140,150,160,170,180}
    숫자 배열을 만들 것이므로 10을 입력하기 전에 {(여는 중괄호)를 입력하고 180을 입력한 후에 }(닫는 중괄호)를 입력해야 합니다.
    그런 다음 빈 셀에 =D9# 또는 =D9:I11 을 입력합니다. D9:D11에 표시된 것과 동일한 값을 가진 3 x 6 셀 배열이 나타납니다. # 기호를 분산된 범위 연산자라고 하며, 입력할 필요 없이 전체 배열 범위를 참조하는 Excel의 방식입니다.
    분산된 범위 연산자(#)를 사용하여 기존 배열을 참조합니다

  • 기존 값에서 배열 상수 만들기
    분산된 배열 수식의 결과를 가져와 구성 요소 부분으로 변환할 수 있습니다. D9 셀을 선택한 다음 F2 키를 눌러 편집 모드로 전환합니다. 그런 다음 F9 키를 눌러 셀 참조를 값으로 변환하면 Excel에서 이를 배열 상수로 변환합니다. Enter 키를 누르면 수식 =D9#이 ={10,20,30;이 됩니다. 40,50,60; 70,80,90}.

  • 셀 범위의 문자 수 계산
    다음 예제에서는 셀 범위에서 문자 수를 세는 방법을 보여 줍니다. 여기에는 공백이 포함됩니다.
    범위의 총 문자 수와 텍스트 문자열 작업을 위한 기타 배열의 개수 계산
    =SUM(LEN(C9:C13))
    이 경우 LEN 함수 는 범위에 있는 각 셀에 있는 각 텍스트 문자열의 길이를 반환합니다. 그런 다음 SUM 함수는 이러한 값을 함께 추가하고 결과(66)를 표시합니다. 평균 문자 수를 얻으려면 다음을 사용할 수 있습니다.
    =AVERAGE(LEN(C9:C13))

  • C9:C13 범위에서 가장 긴 셀의 내용
    =INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)
    이 수식은 데이터 범위에 단일 열의 셀이 포함된 경우에만 작동합니다.
    내부 요소에서 시작하여 외부로 작업하면서 공식을 자세히 살펴보겠습니다. LEN 함수는 셀 범위 D2:D6에 있는 각 항목의 길이를 반환합니다. MAX 함수는 D3 셀에 있는 가장 긴 텍스트 문자열에 해당하는 항목 중에서 가장 큰 값을 계산합니다.
    지금부터는 계산이 조금 복잡해집니다. MATCH 함수는 가장 긴 텍스트 문자열이 들어 있는 셀의 오프셋(상대 위치)을 계산합니다. 이 계산에는 조회 값, 조회 배열, 일치 형식의 세 가지 인수가 필요합니다. MATCH 함수는 조회 배열에서 지정된 조회 값을 검색합니다. 이 예제의 경우 조회 값은 가장 긴 텍스트 문자열입니다.
    MAX(LEN(C9:C13)
    또한 해당 문자열은 다음 배열에 있습니다.
    LEN(C9:C13)
    이 경우의 일치 유형 인수는 0입니다. 일치 유형은 1, 0 또는 -1 값일 수 있습니다.

    • 1 - 조회 값보다 작거나 같은 가장 큰 값을 반환합니다.
    • 0 - 조회 값과 정확히 같은 첫 번째 값을 반환합니다.
    • -1 - 지정된 조회 값보다 크거나 같은 최소값을 반환합니다.
    • 일치 유형을 생략하면 Excel은 1로 간주합니다.

    마지막으로 INDEX 함수 는 배열과 해당 배열 내의 행 및 열 번호와 같은 인수를 받습니다. 셀 범위 C9:C13은 배열을 제공하고 MATCH 함수는 셀 주소를 제공하며, 마지막 인수(1)는 값이 배열의 첫 번째 열에서 오도록 지정합니다.
    가장 작은 텍스트 문자열의 내용을 가져오려면 위의 예제에서 MAX를 MIN으로 바꿉니다.

  • 범위에서 가장 작은 n개의 값 찾기
    이 예제에서는 셀 범위에서 가장 작은 세 개의 값을 찾는 방법을 보여 줍니다. 여기서 B9:B18 셀의 샘플 데이터 배열은 =INT(RANDARRAY(10,1)*100)를 사용하여 만들어졌습니다. RANDARRAY는 휘발성 함수이므로 Excel에서 계산할 때마다 새로운 난수 집합을 받게 됩니다.
    N번째로 작은 값을 찾는 Excel 배열 수식: =SMALL(B9#,SEQUENCE(D9))
    =SMALL(B9#,SEQUENCE(D9), =SMALL(B9:B18,{1; 2; 3})
    이 수식은 배열 상수를 사용하여 SMALL 함수 를 세 번 계산하고 B9:B18 셀에 포함된 배열에서 가장 작은 3개의 구성원을 반환합니다. 여기서 3은 D9 셀의 변수 값입니다. 더 많은 값을 찾으려면 SEQUENCE 함수의 값을 늘리거나 상수에 인수를 더 추가합니다. 이 수식에 SUM 또는 AVERAGE와 같은 추가 함수를 사용할 수도 있습니다. 예를 들면 다음과 같습니다.
    =SUM(SMALL(B9#,SEQUENCE(D9))
    =AVERAGE(SMALL(B9#,SEQUENCE(D9))

  • 범위에서 n개의 가장 큰 값 찾기
    범위에서 가장 큰 값을 찾으려면 SMALL 함수를 LARGE 함수로 바꿀 수 있습니다. 다음 예제에서는 ROWINDIRECT 함수도 사용합니다.
    =LARGE(B9#,ROW(INDIRECT("1:3"))) 또는 =LARGE(B9:B18,ROW(INDIRECT("1:3")))를 입력합니다.
    이 단계에서는 ROW 및 INDIRECT 함수에 대해 조금 알아두는 것이 좋습니다. ROW 함수를 사용하면 연속된 정수 배열을 만들 수 있습니다. 예를 들어 빈 항목을 선택하고 다음을 입력합니다.
    =ROW(1:10)
    10개의 연속된 정수로 구성된 열이 생성됩니다. 잠재적인 문제를 알아보려면 배열 수식이 있는 범위, 즉 1행 위에 행을 삽입합니다. Excel에서 행 참조가 조정되고 수식은 이제 2에서 11까지의 정수를 생성합니다. 이 문제를 해결하려면 수식에 INDIRECT 함수를 추가합니다.
    =ROW(INDIRECT("1:10"))
    INDIRECT 함수는 텍스트 문자열을 인수로 사용합니다. 따라서 범위 1:10은 따옴표로 묶입니다. 이 함수를 사용하면 행을 삽입하거나 배열 수식을 이동할 때 텍스트 값이 자동으로 조정되지 않습니다. 따라서 ROW 함수에서 항상 원하는 정수 배열을 생성합니다. SEQUENCE를 쉽게 사용할 수 있습니다.
    =시퀀스(10)
    앞서 사용한 수식 =LARGE(B9#,ROW(INDIRECT("1:3")))를 살펴보겠습니다. 이 경우 안쪽 괄호에서 시작하여 바깥쪽으로 작업합니다. INDIRECT 함수는 텍스트 값 집합(이 경우 1부터 3까지)을 반환합니다. 그런 다음 ROW 함수는 셀이 세 개 있는 열 배열을 생성합니다. LARGE 함수는 셀 범위 B9:B18의 값을 사용하며 ROW 함수에서 반환된 각 참조에 대해 한 번씩 세 번 계산됩니다. 더 많은 값을 찾으려면 INDIRECT 함수에 더 큰 셀 범위를 추가합니다. 마지막으로, SMALL 예제와 마찬가지로 이 수식을 SUM 및 AVERAGE와 같은 다른 함수와 함께 사용할 수 있습니다.

오류 처리

  • 오류 값이 포함된 범위 더하기
    #VALUE와 같은 오류 값이 포함된 범위의 합계를 구하려고 하면 Excel의 SUM 함수가 작동하지 않습니다. 또는 #N/A를 선택합니다. 다음 예제에서는 오류가 포함된 Data라는 범위의 값을 합산하는 방법을 보여 줍니다.
    배열을 사용하여 오류를 처리합니다. 예를 들어 =SUM(IF(ISERROR(Data),,Data)는 Data라는 범위에 #VALUE! 또는 #NA!와 같은 오류가 포함되어 있더라도 합계를 구합니다.
  • =SUM(IF(ISERROR(데이터),"",데이터))
    이 수식은 원래 값에서 오류 값을 제외한 값이 포함된 새 배열을 만듭니다. ISERROR 함수는 내부 함수에서 시작하여 바깥쪽으로 작업하여 셀 범위(데이터)에서 오류를 검색합니다. IF 함수는 지정한 조건이 TRUE로 평가되면 특정 값을 반환하고, FALSE로 평가되면 다른 값을 반환합니다. 따라서 오류 값이 포함되지 않습니다. 그런 다음 SUM 함수는 필터링된 배열의 합계를 계산합니다.
  • 범위의 오류 값 개수 계산
    이 예제는 이전 수식과 유사하지만 Data라는 범위의 오류 값 수를 필터링하는 대신 반환합니다.
    =SUM(IF(ISERROR(데이터),1,0))
    이 수식은 오류가 있는 셀은 값이 1로 지정되고, 오류가 없는 셀은 값이 0으로 지정된 배열을 만듭니다. 다음과 같이 IF 함수에 대한 세 번째 인수를 제거하여 수식을 간단하게 고치고 동일한 결과를 얻을 수 있습니다.
    =SUM(IF(ISERROR(Data),1))
    인수를 지정하지 않으면 셀에 오류 값이 없는 경우 IF 함수에서 FALSE를 반환합니다. 이 수식을 다음과 같이 더 간단하게 고칠 수 있습니다.
    =SUM(IF(ISERROR(데이터)*1))
    이 버전은 TRUE*1=1이고, FALSE*1=0인 조건으로 작동합니다.

조건에 따라 값 더하기

조건에 따라 값을 더해야 하는 경우가 있을 수 있습니다.

배열을 사용하여 특정 조건에 따라 계산할 수 있습니다. =SUM(IF(Sales>0,Sales))은 Sales라는 범위에서 0보다 큰 모든 값을 합산합니다.

예를 들어 이 배열 수식은 위의 예에서 E9:E24 셀을 나타내는 Sales라는 범위의 양의 정수만 합산합니다.

=SUM(IF(Sales>0,Sales))

IF 함수는 양수 및 거짓 값의 배열을 만듭니다. SUM 함수는 0+0=0이기 때문에 기본적으로 False 값을 무시합니다. 이 수식에서 사용하는 셀 범위를 구성할 수 있는 행/열의 개수에는 제한이 없습니다.

또한 여러 조건을 만족하는 값을 더할 수 있습니다. 예를 들어 다음 배열 수식은 0보다 크 2500보다 작은 값을 계산합니다.

=SUM((판매액>0)*(판매액<2500)*(판매액))

숫자가 아닌 셀이 범위에 하나 이상 포함된 경우 이 수식은 오류를 반환합니다.

OR 조건을 사용하는 배열 수식을 만들 수도 있습니다. 예를 들어 0보다 크 거나 2500보다 작은 값을 합산할 수 있습니다.

=SUM(IF((Sales>0)+(Sales<2500),Sales))

AND 및 OR 함수는 TRUE 또는 FALSE의 단일 결과를 반환하고 배열 함수에는 결과 배열이 필요하기 때문에 배열 수식에서 직접 사용할 수 없습니다. 이전 수식에 표시된 논리를 사용하여 이 문제를 해결할 수 있습니다. 즉, OR 또는 AND 조건에 맞는 값에 대해 덧셈이나 곱하기와 같은 수학 연산을 수행합니다.

이 예제에서는 해당 범위에 포함된 값의 평균을 구해야 하는 경우 범위에서 0을 제외하는 방법을 보여 줍니다. 다음 수식에서는 판매라는 데이터 범위를 사용합니다.

=AVERAGE(IF(Sales<>0,Sales))

IF 함수는 0이 아닌 값의 배열을 만든 다음 이 값을 AVERAGE 함수로 전달합니다.

두 셀 범위 간의 차이 계산

이 배열 수식은 MyData 및 YourData라는 두 셀 범위의 값을 비교하고 둘 사이의 차이 수를 반환합니다. 두 범위의 내용이 같으면 수식은 0을 반환합니다. 이 수식을 사용하려면 셀 범위의 크기와 차원이 같아야 합니다. 예를 들어 MyData가 3행 x 5열 범위인 경우 YourData 역시 3행 x 5열이어야 합니다.

=SUM(IF(MyData=YourData,0,1))

이 수식에서는 비교할 범위와 크기가 같은 새 배열을 만듭니다. IF 함수는 값 0(일치하지 않는 셀)과 값 1(동일한 셀)로 배열을 채웁니다. 그런 다음 SUM 함수는 배열 값의 합계를 반환합니다.

이 수식을 다음과 같이 간단하게 고칠 수 있습니다.

=SUM(1*(MyData<>, YourData))

범위의 오류 값을 계산하는 수식과 마찬가지로 이 수식은 TRUE*1=1 및 FALSE*1=0을 조건으로 작동합니다.

다음 배열 수식은 데이터라는 단일 열 배열에서 최대값이 있는 행의 번호를 반환합니다.

=MIN(IF(데이터=MAX(데이터),ROW(데이터),""))

IF 함수는 Data라는 범위에 해당하는 새 배열을 만듭니다. 해당 셀에 범위의 최대값이 포함되어 있으면 배열에는 행 번호가 포함됩니다. 그렇지 않으면 배열에 빈 문자열("")이 포함됩니다. MIN 함수는 새 배열을 두 번째 인수로 사용하고 데이터에서 최대값의 행 번호에 해당하는 최소값을 반환합니다. Data라는 범위의 최대값이 동일하면 수식에서는 첫 번째 값의 행을 반환합니다.

최대값의 실제 셀 주소를 반환하려면 다음 수식을 사용합니다.

=ADDRESS(MIN(IF(데이터=MAX(데이터),ROW(데이터),"")),COLUMN(데이터))

데이터 세트 간의 차이점 워크시트에 대한 샘플 통합 문서에서 유사한 예제를 찾을 수 있습니다.

감사의 말

이 문서의 일부는 Colin Wilcox가 작성한 Excel 고급 사용자 칼럼 시리즈를 기반으로 하며, 전 Excel MVP인 John Walkenbach가 저술한 책인 Excel 2002 수식의 14장과 15장을 각색했습니다.

추가 지원

언제든지 Excel 기술 커뮤니티의 전문가에게 문의하거나 커뮤니티에서 지원을 받을 수 있습니다.

참고 항목

동적 배열 및 분산된 배열 동작

동적 배열 수식과 레거시 CSE 배열 수식 비교

FILTER 함수

RANDARRAY 함수

SEQUENCE 함수

SORT 함수

SORTBY 함수

UNIQUE 함수

#분산! 오류

암시적 교집합 연산자: @

수식 개요