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 함수는 테이블에서 실제로 빈 행을 계산하지 않고, 관계의 자식 테이블 중 하나 이상이 일치하지 않는 값이나 빈 값을 포함하는 경우 부모 테이블에서 생성된 특수한 경우인 빈 행만 처리하기 때문입니다.