이 문서에서는 Microsoft Excel의 CUBEVALUE 함수에 사용되는 수식 구문과 이 함수를 사용하는 방법을 설명합니다.
설명
큐브에서 집계 값을 반환합니다.
구문
CUBEVALUE(connection, [member_expression1], [member_expression2], …)
CUBEVALUE 함수 구문에는 다음과 같은 인수가 사용됩니다.
-
connection 필수 요소입니다. 큐브에 대한 연결 이름을 나타내는 텍스트 문자열입니다.
-
member_expression 선택 요소입니다. 큐브 내의 멤버 또는 튜플로 계산되는 MDX(다차원 식)의 텍스트 문자열입니다. 또는 member_expression CUBESET 함수로 정의된 집합일 수 있습니다. member_expression 슬라이서로 사용하여 집계된 값이 반환되는 큐브 부분을 정의합니다. member_expression 측정값이 지정되지 않은 경우 해당 큐브에 대한 기본 측정값이 사용됩니다.
주의
-
CUBEVALUE 함수가 계산될 때 모든 데이터가 검색되기 전에는 셀에 "#GETTING_DATA..."라는 메시지가 일시적으로 표시됩니다.
-
member_expression에 셀 참조를 사용할 경우 해당 셀 참조에 CUBE 함수가 들어 있으면 member_expression은 참조되는 해당 셀에 표시되는 값이 아니라 참조되는 셀의 항목에 대한 MDX 식을 사용합니다.
-
연결 이름이 통합 문서에 저장된 올바른 통합 문서 연결이 아니면 CUBEVALUE에서는 #NAME? 오류 값이 반환됩니다. OLAP(온라인 분석 처리) 서버가 실행되고 있지 않거나 사용할 수 없는 상태이거나 오류 메시지를 반환할 경우에는 CUBEVALUE에서는 #NAME? 오류 값이 반환됩니다.
-
튜플 내의 요소가 하나라도 유효하지 않으면 CUBEVALUE에서는 #VALUE! 오류 값이 반환됩니다.
-
다음과 같은 경우에는 #N/A 오류 값이 반환됩니다.
-
member_expression 구문이 잘못된 경우
-
member_expression으로 지정한 구성원이 큐브에 없는 경우
-
지정한 값에 대한 교집합이 없어서 튜플이 잘못된 경우. 같은 계층 구조의 여러 요소에 대해 이러한 경우가 발생할 수 있습니다.
-
집합에 나머지 구성원과 차원이 다른 구성원이 하나 이상 포함되어 있는 경우
-
연결 공유 시 계산된 구성원 또는 명명된 집합과 같은 피벗 테이블의 세션 기반 개체를 참조하는 경우 해당 피벗 테이블이 삭제되거나 피벗 테이블을 수식으로 변환하면 #N/A 오류 값이 반환될 수 있습니다. 옵션 탭의 도구 그룹에서 OLAP 도구를 클릭한 다음 수식으로 변환을 클릭합니다.
-
Null 값이 길이가 0인 문자열로 변환되는 문제
Excel에서 데이터를 변경하지 않았거나 내용을 삭제했기 때문에 셀에 데이터가 없는 경우 셀에 빈 값이 포함됩니다. 많은 데이터베이스 시스템에서 빈 값을 Null 값이라고 합니다. 빈 값 또는 Null 값은 문자 그대로 "값 없음"을 의미합니다. 그러나 수식은 빈 문자열 또는 Null 값을 반환할 수 없습니다. 수식은 항상 숫자 값의 세 가지 값 중 하나를 반환합니다. 길이가 0인 문자열 또는 오류 값(예: #NUM! 또는 #VALUE.
OLAP(온라인 분석 처리) 데이터베이스에 연결된 CUBEVALUE 함수가 수식에 포함되어 있고 이 데이터베이스에 대한 쿼리 결과가 Null 값인 경우, 수식에서 숫자 값이 반환될 수 있는 경우에도 이 Null 값은 길이가 0인 문자열로 변환됩니다. 그 결과 일정 범위의 셀에 숫자 값과 길이가 0인 문자열 값의 조합이 포함되어 해당 범위의 셀을 참조하는 다른 수식의 결과에 영향을 줄 수 있습니다. 예를 들어 A1과 A3에 숫자가 포함되어 있고 A2에 길이가 0인 문자열을 반환하는 CUBEVALUE 함수의 수식이 포함되어 있는 경우 다음 수식을 사용하면 #VALUE! 오류가 반환됩니다.
=A1+A2+A3
이러한 문제를 방지하려면 다음 예제와 같이 ISTEXT 함수를 사용하고, IF 함수를 사용하여 길이가 0인 문자열을 숫자 0으로 바꿔서 길이가 0인 문자열을 테스트할 수 있습니다.
=IF(ISTEXT(A1),0,A1)+IF(ISTEXT(A2),0,A2)+IF(ISTEXT(A3),0,A3)
또는 다음 예제와 같이 CUBEVALUE 함수의 값이 길이가 0인 문자열인 경우 0 값을 반환하는 IF 조건 내에 CUBEVALUE 함수를 중첩할 수 있습니다.
=IF (CUBEVALUE("판매량","[측정값].[수익]","[시간].[2004]","[모든 품목].[음료]")="", 0, CUBEVALUE("판매량","[측정값].[수익]","[시간].[2004]","[모든 품목].[음료]"))
SUM 함수의 경우 반환 값을 계산할 때 길이가 0인 문자열이 자동으로 무시되므로 길이가 0인 문자열에 대한 테스트가 필요 없습니다.
예제
=CUBEVALUE("판매량","[측정값].[수익]","[시간].[2004]","[모든 품목].[음료]")
=CUBEVALUE($A$1,"[측정값].[수익]",D$12,$A23)
=CUBEVALUE("판매량",$B$7,D$12,$A23)