ALLNOBLANKROW 함수
관계의 부모 테이블에서 빈 행을 제외한 모든 행 또는 빈 행을 제외한 열의 모든 고유 값을 반환하고 존재할 수 있는 컨텍스트 필터는 모두 무시합니다.
구문
ALLNOBLANKROW(<table>|<column>)
매개 변수
용어 |
정의 |
---|---|
table |
모든 컨텍스트 필터를 제거할 테이블입니다. |
column |
모든 컨텍스트 필터를 제거할 열입니다. |
하나의 매개 변수만 전달해야 하며 이 매개 변수는 테이블이거나 열입니다.
반환 값
전달된 매개 변수가 테이블인 경우에는 테이블이고 전달된 매개 변수가 열인 경우에는 값의 열입니다.
주의
ALLNOBLANKROW 함수는 자식 테이블에 부모 열과 일치하지 않는 값이 있는 행이 하나 이상 있을 경우 관계의 부모 테이블에서 표시할 빈 행만 필터링합니다. 자세한 설명은 아래 예를 참조하십시오.
다음 표에서는 DAX에서 제공하는 ALL의 다양한 변형과 각각의 차이점을 요약하여 보여 줍니다.
함수 및 사용법 |
설명 |
---|---|
ALL(Column) |
테이블의 지정된 열에서 필터를 모두 제거합니다. 테이블에서 다른 열의 다른 필터는 모두 계속 적용됩니다. |
ALL(Table) |
지정한 테이블에서 모든 필터를 제거합니다. |
ALLEXCEPT(Table,Col1,Col2...) |
지정된 열에 적용된 필터를 제외하고 테이블의 모든 컨텍스트 필터를 재정의합니다. |
ALLNOBLANK(table|column) |
관계의 부모 테이블에서 빈 행을 제외한 모든 행 또는 빈 행을 제외한 열의 모든 고유 값을 반환하고 존재할 수 있는 컨텍스트 필터는 모두 무시합니다. |
ALL 함수 작동 방식에 대한 일반적인 설명과 ALL(Table) 및 ALL(Column)을 사용하는 단계별 예는 ALL 함수를 참조하십시오.
예
예제 데이터에서 ResellerSales_USD 테이블에는 값이 없는 행이 하나 포함되어 있으므로 통합 문서에 있는 관계의 부모 테이블 중 어떤 것에도 연결될 수 없습니다. 이 테이블을 피벗 테이블에서 사용하면 빈 행의 동작 및 관련 없는 데이터에 대한 개수를 세는 방법을 볼 수 있습니다.
1단계: 관련 없는 데이터 확인
PowerPivot 창을 연 다음 ResellerSales_USD 테이블을 선택합니다. ProductKey 열에서 빈 값을 필터링합니다. 그러면 한 행만 남습니다. 이 행에서 SalesOrderLineNumber를 제외한 모든 열 값이 비어 있어야 합니다.
2단계: 피벗 테이블 만들기
새 피벗 테이블을 만든 다음 datetime.[Calendar Year] 열을 행 레이블 창으로 끌어 옵니다. 다음 표에는 예상 결과가 나와 있습니다.
행 레이블 |
---|
2005 |
2006 |
2007 |
2008 |
|
총합계 |
2008과 총합계 사이에 있는 빈 레이블에 주목하십시오. 이 빈 레이블은 부모 테이블에 일치하는 값이 없는 자식 테이블의 값을 나타내기 위해 만든 특수한 그룹인 알 수 없는 멤버(이 예에서는 datetime.[Calendar Year] 열)를 나타냅니다.
피벗 테이블에 이 빈 레이블이 표시되면 datetime.[Calendar Year] 열과 관련된 테이블 중 일부에 빈 값이나 일치하지 않는 값이 있음을 알 수 있습니다. 부모 테이블에 빈 레이블이 표시되지만 일치하지 않는 행은 자식 테이블 중 하나 이상에 있습니다.
이 빈 레이블 그룹에 추가된 행은 부모 테이블의 어떤 값과도 일치하지 않는 값(예: datetime 테이블에 없는 날짜)이거나 Null 값(날짜에 대한 값이 없음)입니다. 이 예에서는 자식 sales 테이블의 모든 열에 빈 값을 배치했습니다. 부모 테이블에 자식 테이블보다 많은 값을 추가하는 것은 문제가 되지 않습니다.
3단계: ALL 및 ALLNONBLANK를 사용하여 행 계산
datetime 테이블에 Countrows ALLNOBLANK of datetime과 Countrows ALL of datetime이라는 두 측정값을 추가하여 테이블 행 수를 셉니다. 이러한 측정값을 정의하기 위해 사용할 수 있는 수식은 다음 코드 섹션에 나와 있습니다.
빈 피벗 테이블에서 datetime.[Calendar Year] 열을 행 레이블에 추가한 다음 새로 만든 측정값을 추가합니다. 결과는 다음 표와 같아야 합니다.
행 레이블 |
Countrows ALLNOBLANK of datetime |
Countrows ALL of datetime |
---|---|---|
2005 |
1280 |
1281 |
2006 |
1280 |
1281 |
2007 |
1280 |
1281 |
2008 |
1280 |
1281 |
|
1280 |
1281 |
총합계 |
1280 |
1281 |
결과를 보면 테이블 행 개수에서 1개의 차이가 있습니다. 그러나 PowerPivot 창을 열고 datetime 테이블을 선택하면 테이블에서 빈 행을 찾을 수 없는데 이는 이 항목에서 설명하는 특수한 빈 행이 알 수 없는 멤버이기 때문입니다.
4단계: 개수가 정확한지 확인
ALLNOBLANKROW가 실제로 빈 행의 개수를 세지 않고 부모 테이블의 특수한 빈 행만 처리한다는 것을 증명하기 위해 ResellerSales_USD 테이블에 Countrows ALLNOBLANKROW of ResellerSales_USD와 Countrows ALL of ResellerSales_USD라는 두 측정값을 추가해 봅니다.
새 피벗 테이블을 만든 다음 datetime.[Calendar Year] 열을 행 레이블 창으로 끌어 옵니다. 이제 앞서 만든 측정값을 추가합니다. 결과는 다음과 같아야 합니다.
행 레이블 |
Countrows ALLNOBLANKROW of ResellerSales_USD |
Countrows ALL of ResellerSales_USD |
---|---|---|
2005 |
60856 |
60856 |
2006 |
60856 |
60856 |
2007 |
60856 |
60856 |
2008 |
60856 |
60856 |
|
60856 |
60856 |
총합계 |
60856 |
60856 |
이제 두 측정값의 결과가 동일합니다. 이는 관계에서 하나 이상의 자식 테이블에 일치하지 않는 값이나 빈 값이 포함된 경우 ALLNOBLANKROW 함수가 테이블의 실제로 빈 행의 개수는 세지 않고 부모 테이블에 생성된 특수한 사례에 해당하는 빈 행만 처리하기 때문입니다.
// 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'))