다음을 통해 공유


ALL

적용 대상: 계산 열 계산 테이블 측정 시각적 계산

적용되었을 수 있는 필터를 무시하고 테이블의 모든 행 또는 열의 모든 값을 반환합니다. 이 함수는 필터를 지우고 테이블의 모든 행에서 계산을 만드는 데 유용합니다.

구문

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )  

매개 변수

용어 정의
table 필터를 지울 테이블입니다.
column 필터를 지울 열입니다.

ALL 함수에 대한 인수는 기본 테이블에 대한 참조 또는 기본 열에 대한 참조여야 합니다. ALL 함수에는 테이블 식이나 열 식을 사용할 수 없습니다.

반환 값

필터가 제거된 테이블 또는 열입니다.

설명

  • 이 함수는 그 자체로 사용되지 않지만 다른 계산이 수행되는 결과 집합을 변경하는 데 사용할 수 있는 중간 함수 역할을 합니다.

  • ALL() 함수를 포함하는 DAX 식의 일반적인 동작은 적용된 모든 필터가 무시된다는 것입니다. 그러나 특정 DAX 쿼리에 필요한 처리량을 줄이기 위해 필터링을 최적화하는 DAX 기술인 자동 존재로 인해 그렇지 않은 몇 가지 시나리오가 있습니다. 자동 존재 및 ALL()이 예기치 않은 결과를 제공하는 예제는 같은 테이블의 두 개 이상의 열(예: 슬라이서 사용)을 필터링할 때와 같은 테이블에 ALL()을 사용하는 측정값이 있는 경우입니다. 이 경우 자동 존재는 여러 필터를 하나로 병합 하고 기존 값 조합에 대해서만 필터링합니다. 이 병합으로 인해 측정값은 기존 값 조합에 따라 계산되고 결과는 예상대로 모든 값이 아닌 필터링된 값을 기반으로 합니다. 자동 존재 및 계산에 미치는 영향에 대한 자세한 내용은 Microsoft MVP Alberto Ferrari의 DAX Auto-Exist 이해 문서를 sql.bi.com참조하세요.

  • 다음 표에서는 다양한 시나리오에서 ALL 및 ALLEXCEPT 함수를 사용하는 방법을 설명합니다.

    함수 및 사용 설명
    ALL() 모든 위치에서 모든 필터를 제거합니다. ALL()은 필터를 지우는 데만 사용할 수 있지만 테이블을 반환하는 데는 사용할 수 없습니다.
    ALL(Table) 지정된 테이블에서 모든 필터를 제거합니다. 실제로 ALL(Table)은 테이블의 모든 값을 반환하고, 그렇지 않으면 적용되었을 수 있는 컨텍스트에서 필터를 제거합니다. 이 함수는 여러 수준의 그룹화 작업을 하고 집계된 값과 총 값의 비율을 만드는 계산을 만들 때 유용합니다. 첫 번째 예제에서는 이 시나리오를 보여 줍니다.
    ALL(Column[, Column[, ...]]) 테이블의 지정된 열에서 모든 필터를 제거합니다. 테이블의 다른 열에 대한 다른 모든 필터는 계속 적용됩니다. 모든 열 인수는 동일한 테이블에서 와야 합니다. ALL(Column) 변형은 하나 이상의 특정 열에 대한 컨텍스트 필터를 제거하고 다른 모든 컨텍스트 필터를 유지하려는 경우에 유용합니다. 두 번째 및 세 번째 예제에서는 이 시나리오를 보여 줍니다.
    ALLEXCEPT(Table, Column1 [,Column2]...) 지정한 열에 적용되는 필터를 제외하고 테이블의 모든 컨텍스트 필터를 제거합니다. 이는 테이블의 여러 열에서 필터를 제거하려는 경우에 편리한 바로 가기입니다.
  • 이 함수는 계산 열 또는 RLS(행 수준 보안) 규칙에서 사용되는 경우 DirectQuery 모드에서 사용할 수 없습니다.

예 1

총 판매액에 대한 범주 판매 비율 계산

피벗 테이블에서 현재 셀의 판매액을 모든 재판매인의 총 판매액으로 나눈다고 가정합니다. 피벗 테이블 사용자가 데이터를 필터링하거나 그룹화하는 방법에 관계없이 분모가 동일한지 확인하려면 ALL을 사용하여 올바른 총합계를 만드는 수식을 정의합니다.

다음 표에서는 코드 섹션에 표시된 수식을 사용하여 새 측정값인 All Reseller Sales Ratio를 만들 때의 결과를 보여 줍니다. 작동 방식을 확인하려면 피벗 테이블의 행 레이블 영역에 CalendarYear 필드를 추가하고 ProductCategoryName 필드를 열 레이블 영역에 추가합니다. 그런 다음, 측정값인 모든 재판매인 판매 비율을 피벗 테이블의 값 영역으로 끕니다. 결과를 백분율로 보려면 Excel의 서식 기능을 사용하여 측정값이 포함된 셀에 백분율 숫자 서식을 적용합니다.

Row Labels Accessories Bikes Clothing Components 총합계
2005 0.02% 9.10% 0.04% 0.75% 9.91%
2006 0.11% 24.71% 0.60% 4.48% 29.90%
2007 0.36% 31.71% 1.07% 6.79% 39.93%
2008 0.20% 16.95% 0.48% 2.63% 20.26%
총합계 0.70% 82.47% 2.18% 14.65% 100.00%

수식

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  

수식은 다음과 같이 생성됩니다.

  1. 숫자는 SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])CalendarYear 및 ProductCategoryName에 컨텍스트 필터가 적용된 피벗 테이블의 현재 셀에 대한 ResellerSales_USD[SalesAmount_USD]의 값 합계입니다.

  2. 분모의 경우 먼저 테이블을 지정하고 ResellerSales_USD ALL 함수를 사용하여 테이블의 모든 컨텍스트 필터를 제거합니다.

  3. 그런 다음 SUMX 함수를 사용하여 ResellerSales_USD[SalesAmount_USD] 열의 값을 합산합니다. 즉, 모든 재판매인 판매에 대한 ResellerSales_USD[SalesAmount_USD]의 합계를 얻습니다.

예제 2

현재 연도까지의 총 판매액에 대한 제품 판매 비율 계산

각 제품 범주(ProductCategoryName)에 대해 연도별 매출 비율을 보여 주는 테이블을 만들려는 경우를 가정합니다. ProductCategoryName의 각 값에 대해 매년 백분율을 얻으려면 해당 특정 연도 및 제품 범주의 판매 합계를 모든 연도의 동일한 제품 범주에 대한 판매 합계로 나누어야 합니다. 즉, ProductCategoryName에서 필터를 유지하지만 백분율의 분모를 계산할 때 연도에 필터를 제거하려고 합니다.

다음 표에서는 코드 섹션에 표시된 수식을 사용하여 새 측정값인 Reseller Sales Year를 만들 때의 결과를 보여 줍니다. 작동 방식을 확인하려면 피벗 테이블의 행 레이블 영역에 CalendarYear 필드를 추가하고 ProductCategoryName 필드를 열 레이블 영역에 추가합니다. 결과를 백분율로 보려면 Excel의 서식 기능을 사용하여 측정값 인 Reseller Sales Year가 포함된 셀에 백분율 숫자 서식을 적용합니다.

행 레이블 Accessories Bikes Clothing Components 총합계
2005 3.48% 11.03% 1.91% 5.12% 9.91%
2006 16.21% 29.96% 27.29% 30.59% 29.90%
2007 51.62% 38.45% 48.86% 46.36% 39.93%
2008 28.69% 20.56% 21.95% 17.92% 20.26%
총합계 100.00% 100.00% 100.00% 100.00% 100.00%

수식

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))  

수식은 다음과 같이 생성됩니다.

  1. numerator SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])는 CalendarYear 및 ProductCategoryName 열에 컨텍스트 필터가 적용된 피벗 테이블의 현재 셀에 대한 ResellerSales_USD[SalesAmount_USD]의 값 합계입니다.

  2. 분모의 경우 ALL(Column) 함수를 사용하여 CalendarYear에서 기존 필터를 제거합니다. 열 레이블에서 기존 컨텍스트 필터를 적용한 후 ResellerSales_USD 테이블의 나머지 행에 대한 합계를 계산합니다. 순 효과는 분모의 경우 합계가 선택한 ProductCategoryName(암시적 컨텍스트 필터)과 Year의 모든 값에 대해 계산된다는 것입니다.

예 3

연간 총 매출에 대한 제품 범주 기여도 계산

각 제품 범주에 대한 매출 비율을 연 단위로 표시하는 테이블을 만들려는 경우를 가정합니다. 특정 연도의 각 제품 범주에 대한 백분율을 얻으려면 해당 특정 제품 범주(ProductCategoryName)의 판매 합계를 n년 단위로 계산한 다음 결과 값을 모든 제품 범주에 대해 연도 n의 판매 합계로 나눕니다. 즉, 연도에 필터를 유지하지만 백분율의 분모를 계산할 때 ProductCategoryName에서 필터를 제거하려고 합니다.

다음 표에서는 코드 섹션에 표시된 수식을 사용하여 새 측정값인 Reseller Sales CategoryName을 만들 때의 결과를 보여 줍니다. 작동 방식을 확인하려면 피벗 테이블의 행 레이블 영역에 CalendarYear 필드를 추가하고 ProductCategoryName 필드를 열 레이블 영역에 추가합니다. 그런 다음 피벗 테이블의 영역에 새 측정값을 추가합니다. 결과를 백분율로 보려면 Excel의 서식 기능을 사용하여 새 측정값 인 Reseller Sales CategoryName이 포함된 셀에 백분율 숫자 서식을 적용합니다.

Row Labels Accessories Bikes Clothing Components 총합계
2005 0.25% 91.76% 0.42% 7.57% 100.00%
2006 0.38% 82.64% 1.99% 14.99% 100.00%
2007 0.90% 79.42% 2.67% 17.01% 100.00%
2008 0.99% 83.69% 2.37% 12.96% 100.00%
총합계 0.70% 82.47% 2.18% 14.65% 100.00%

수식

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))  

수식은 다음과 같이 생성됩니다.

  1. 숫자는 SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])피벗 테이블의 현재 셀에 대한 ResellerSales_USD[SalesAmount_USD]에 있는 값의 합계이며, 필드, CalendarYear 및 ProductCategoryName에 컨텍스트 필터가 적용됩니다.

  2. 분모의 경우 ALL(Column) 함수를 사용하여 ProductCategoryName에서 필터를 제거하고 행 레이블에서 기존 컨텍스트 필터를 적용한 후 ResellerSales_USD 테이블의 나머지 행에 대한 합계를 계산합니다. 순 효과는 분모의 경우 선택한 연도(암시적 컨텍스트 필터)와 ProductCategoryName의 모든 값에 대해 합계가 계산된다는 것입니다.

필터 함수
ALL 함수
ALLEXCEPT 함수
FILTER 함수