다음을 통해 공유


ALLNOBLANKROW

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

관계의 부모 테이블에서 빈 행을 제외한 모든 행 또는 빈 행을 제외한 열의 모든 고유 값을 반환하고 존재할 수 있는 컨텍스트 필터를 무시합니다.

구문

ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )

매개 변수

용어 정의
table 모든 컨텍스트 필터가 제거되는 테이블입니다.
column 모든 컨텍스트 필터가 제거되는 열입니다.

매개 변수를 하나만 전달해야 합니다. 매개 변수는 테이블 또는 열입니다.

반환 값

전달된 매개 변수가 테이블이거나 값 열인 경우 전달된 매개 변수가 열인 테이블입니다.

설명

  • ALLNOBLANKROW 함수는 부모 테이블이 부모 열에 일치하지 않는 값을 가진 자식 테이블에 하나 이상의 행이 있을 때 부모 테이블이 표시하는 빈 행만 필터링합니다. 자세한 설명은 아래 예제를 참조하세요.

  • 다음 표에는 DAX에서 제공되는 ALL의 변형과 그 차이점이 요약되어 있습니다.

    함수 및 사용 설명
    ALL(열) 테이블의 지정된 열에서 모든 필터를 제거합니다. 테이블의 다른 모든 필터는 다른 열보다 계속 적용됩니다.
    ALL(Table) 지정된 테이블에서 모든 필터를 제거합니다.
    ALLEXCEPT(Table,Col1,Col2...) 지정한 열을 제외한 테이블의 모든 컨텍스트 필터를 재정의합니다.
    ALLNOBLANK(table|column) 관계의 부모 테이블에서 빈 행을 제외한 모든 행 또는 빈 행을 제외한 열의 모든 고유 값을 반환하고 존재할 수 있는 컨텍스트 필터를 무시합니다.

    ALL(Table) 및 ALL(Column)을 사용하는 단계별 예제와 함께 ALL 함수의 작동 방식에 대한 일반적인 설명은 ALL 함수를 참조하세요.

  • 이 함수는 계산 열 또는 RLS(행 수준 보안) 규칙에서 사용되는 경우 DirectQuery 모드에서 사용할 수 없습니다.

예시

샘플 데이터에서 ResellerSales_USD 테이블에는 값이 없으므로 통합 문서 내 관계의 부모 테이블과 관련될 수 없는 행이 하나 포함되어 있습니다. 빈 행 동작과 관련 없는 데이터에 대한 개수를 처리하는 방법을 볼 수 있도록 피벗 테이블에서 이 테이블을 사용합니다.

1단계: 관련 없는 데이터 확인

파워 피벗 창을 열고 ResellerSales_USD 테이블을 선택합니다. ProductKey 열에서 빈 값을 필터링합니다. 한 행이 남아 있습니다. 해당 행에서 SalesOrderLineNumber를 제외한 모든 열 값은 비어 있어야 합니다.

2단계: 피벗 테이블 만들기

새 피벗 테이블을 만든 다음 날짜/시간 열을 끕니다. [Calendar Year], 행 레이블 창 다음 표에서는 예상 결과를 보여줍니다.

Row Labels
2005
2006
2007
2008
총합계

2008년과 총합계 사이의 빈 레이블을 확인합니다. 이 빈 레이블은 부모 테이블에 일치하는 값이 없는 자식 테이블의 값을 설명하기 위해 만들어진 특수 그룹인 알 수 없는 멤버를 나타냅니다. 이 예제에서는 datetime입니다. [Calendar Year] 열입니다.

피벗 테이블에 이 빈 레이블이 표시되면 날짜/시간 열과 관련된 일부 테이블에서 알 수 있습니다. [Calendar Year]에는 빈 값 또는 일치하지 않는 값이 있습니다. 부모 테이블은 빈 레이블을 표시하는 테이블이지만 일치하지 않는 행은 하나 이상의 자식 테이블에 있습니다.

이 빈 레이블 그룹에 추가되는 행은 부모 테이블의 값과 일치하지 않는 값(예: datetime 테이블에 없는 날짜) 또는 null 값으로, 날짜 값이 전혀 없음을 의미합니다. 이 예제에서는 자식 판매 테이블의 모든 열에 빈 값을 배치했습니다. 자식 테이블보다 부모 테이블에 값이 더 많으면 문제가 발생하지 않습니다.

3단계: ALL 및 ALLNOBLANK를 사용하여 행 개수 계산

datetime 테이블에 다음 두 측정값을 추가하여 테이블 행 수를 계산합니다. datetime의 Countrows ALLNOBLANK, Countrows ALL of datetime. 이러한 측정값을 정의하는 데 사용할 수 있는 수식은 다음과 같습니다.

// Countrows ALLNOBLANK of datetime  
= COUNTROWS(ALLNOBLANKROW('DateTime'))  
  
// Countrows ALL of datetime  
= COUNTROWS(ALL('DateTime'))  
  
// Countrows ALLNOBLANKROW of ResellerSales_USD  
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))  
  
// Countrows ALL of ResellerSales_USD  
= COUNTROWS(ALL('ResellerSales_USD'))  

빈 피벗 테이블에서 날짜/시간을 추가합니다. [Calendar Year] 열을 행 레이블에 추가한 다음 새로 만든 측정값을 추가합니다. 결과는 다음 표와 같습니다.

Row Labels datetime의 Countrows ALLNOBLANK Countrows ALL of datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
총합계 1280 1281

결과는 테이블 행 수에서 1행의 차이를 보여 줍니다. 그러나 파워 피벗 창을 열고 datetime 테이블을 선택하면 여기에 언급된 특수한 빈 행이 알 수 없는 멤버이므로 테이블에서 빈 행을 찾을 수 없습니다.

4단계: 개수가 정확한지 확인

ALLNOBLANKROW가 실제로 빈 행을 계산하지 않고 부모 테이블의 특수 빈 행만 처리한다는 것을 증명하기 위해 ResellerSales_USD 테이블에 다음 두 측정값을 추가합니다. ResellerSales_USD Countrows ALLNOBLANKROW, Countrows ALL of ResellerSales_USD.

새 피벗 테이블을 만들고 날짜/시간 열을 끕니다. [Calendar Year], 행 레이블 창 이제 방금 만든 측정값을 추가합니다. 결과는 다음과 같습니다.

Row Labels ResellerSales_USD 개수 ALLNOBLANKROW ResellerSales_USD 모두 계산
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
총합계 60856 60856

이제 두 측정값의 결과가 동일합니다. ALLNOBLANKROW 함수는 테이블에서 실제로 빈 행을 계산하지 않고, 관계의 자식 테이블 중 하나 이상이 일치하지 않는 값이나 빈 값을 포함하는 경우 부모 테이블에서 생성된 특수한 경우인 빈 행만 처리하기 때문입니다.

필터 함수
ALL 함수
FILTER 함수