하나 이상의 검색 조건에 지정된 모든 조건을 충족하는 행의 값을 반환합니다.
구문
LOOKUPVALUE (
<result_columnName>,
<search_columnName>,
<search_value>
[, <search2_columnName>, <search2_value>]…
[, <alternateResult>]
)
매개 변수
| 변수 | 정의 |
|---|---|
result_columnName |
반환하려는 값이 포함된 기존 열의 이름입니다. 식이 될 수 없습니다. |
search_columnName |
기존 열의 이름입니다. result_columnName 같은 테이블이나 관련 테이블에 있을 수 있습니다. 식이 될 수 없습니다. 여러 쌍의 search_columnName 및 search_value 지정할 수 있습니다. |
search_value |
search_columnName 검색할 값입니다. 여러 쌍의 search_columnName 및 search_value 지정할 수 있습니다. |
alternateResult |
(선택 사항) result_columnName 컨텍스트를 0개 이상의 고유 값으로 필터링할 때 반환되는 값입니다. 지정하지 않으면 result_columnName 0 값으로 필터링되거나 result_columnName 컨텍스트에 둘 이상의 고유 값이 있는 경우 오류가 반환 BLANK 됩니다. |
반환 값
result_columnName 및 search_columnName 모든 쌍이 정확히 일치하는 행의 search_value 값입니다.
일치하는 항목이 없으면 모든 검색 값이 반환되거나 BLANK (지정된 경우) 함수가 반환 alternateResult 됩니다. 즉, 일부 조건만 일치하는 경우 함수는 조회 값을 반환하지 않습니다.
여러 행이 검색 값과 일치하고 이러한 행의 result_columnName 값이 동일하면 해당 값이 반환됩니다. 그러나 다른 값을 반환하는 경우 result_columnName 함수는 오류를 반환하거나 alternateResult (지정된 경우) 반환합니다.
비고
결과 열이 포함된 테이블과 검색 열이 포함된 테이블 사이에 관계가 있는 경우 대부분의 경우 함수 대신 RELATED 함수를 LOOKUPVALUE 사용하는 것이 더 효율적이며 성능이 향상됩니다.
여러 쌍
search_columnName을 지정할 수 있습니다.search_valuesearch_value및alternateResult매개 변수는 함수가 검색 테이블의 행을 반복하기 전에 평가됩니다.행 컨텍스트 LOOKUPVALUE 에서 평가되는 경우 현재 행을 필터로 변환하는 것과 같은 CALCULATE컨텍스트 전환을 수행합니다. 계산 열에서 식이 해당 열을 명시적으로 참조하지 않는 경우에도 동일한 테이블의 다른 열에 종속성을 도입할 수 있습니다. 이러한 종속성으로 인해 순환 종속성 오류가 발생할 수 있습니다.
LOOKUPVALUE는 해당 테이블에 적용된 것과 ALL 동일한 필터 제거 동작을 사용하여 포함된
result_columnName테이블에서 필터를 제거합니다. 양방향 관계를 통해 다른 테이블에서 전파된 필터는 조회 결과에 계속 영향을 줄 수 있습니다. 예제 3에서는 해당 필터가 조회를 제한할 때 원본 테이블의 필터를 제거하는 방법을 보여 줍니다.에서 반환ISERROR한 오류를 사용 IFERROR 하거나 LOOKUPVALUE 캡처하지 않습니다. 단일 출력 값을 확인할 수 없는 경우 함수에 대한 일부 입력으로 인해 오류가 발생하는 경우 매개 변수를
alternateResult제공하는 것이 오류를 처리하는 가장 안정적이고 성능이 뛰어난 방법입니다.alternateResult매개 변수는 파워 피벗 계산 열에 지정된 경우 오류를 반환합니다.-
이 함수는 계산 열 또는 RLS(행 수준 보안) 규칙에서 사용되는 경우 DirectQuery 모드에서 사용할 수 없습니다.
이 문서의 예제는 Adventure Works DW 2020 Power BI Desktop 모델 샘플과 함께 사용할 수 있습니다. 모델을 얻으려면 DAX 샘플 모델참조하세요.
예제 1
이 예제에서는 LOOKUPVALUE 주문이 이루어진 날 주문에 대해 지불하는 데 사용되는 통화에 대한 평균 요금을 검색합니다.
Exchange Rate =
LOOKUPVALUE (
'Currency Rate'[Average Rate],
'Currency Rate'[CurrencyKey], [CurrencyKey],
'Currency Rate'[DateKey], [OrderDateKey]
)
올바른 날짜와 통화에 대한 평균 요금을 찾으려면 주문 날짜와 통화가 모두 필요합니다. OrderDateKey 및 CurrencyKey는 통화 비율 테이블에서 평균 금리를 조회하는 데 사용되는 키입니다.
환율을 사용하여 다음을 사용하여 현지 통화로 판매액을 계산할 수 있습니다.
Sales Amount Local Currency =
[Sales Amount] * [Exchange Rate]
예제 2
이 예제에서 Sales 테이블에 정의된 다음 계산 열은 LOOKUPVALUE 함수를 사용하여 Sales Order 테이블에서 채널 값을 반환합니다.
CHANNEL =
LOOKUPVALUE (
'Sales Order'[Channel],
'Sales Order'[SalesOrderLineKey], [SalesOrderLineKey]
)
그러나 이 경우 Sales Order 와 Sales 테이블 사이에 관계가 있기 때문에 함수를 사용하는 RELATED 것이 더 효율적입니다.
CHANNEL =
RELATED ( 'Sales Order'[Channel] )
예제 3
이 예제에서는 Product[ProductKey]와 Sales[ProductKey] 간의 관계의 교차 필터 방향을 둘 다로 변경합니다. 이렇게 하면 Sales 필터에서 제품을 필터링할 수 있습니다.
Sales의 다음 계산 열은 고정 참조 제품의 이름을 조회합니다. 현재 판매 행의 제품이 아닌 참조 제품을 사용하면 양방향 필터가 조회를 제한하는 방법을 보여 줍니다.
Reference Product Name =
VAR ReferenceProductKey = 528
RETURN
LOOKUPVALUE ( 'Product'[Product], 'Product'[ProductKey], ReferenceProductKey )
내부 컨텍스트 전환은 현재 Sales 행에서 필터를 만듭니다. 이러한 필터는 양방향 관계를 통해 제품 으로 전파됩니다. 다른 제품 키가 있는 판매 행의 경우 참조 제품이 있더라도 조회가 반환 BLANK 됩니다.
계산 열의 수식을 다음 식으로 바꿉다. REMOVEFILTERS 는 조회 전에 컨텍스트 전환에 의해 생성된 Sales 필터를 지웁니다.
Reference Product Name =
VAR ReferenceProductKey = 528
RETURN
CALCULATE (
LOOKUPVALUE ( 'Product'[Product], 'Product'[ProductKey], ReferenceProductKey ),
REMOVEFILTERS ( Sales )
)
수정된 수식은 현재 판매 행의 제품에 관계없이 참조 제품의 이름을 반환합니다. 이 예제 이후 관계의 원래 교차 필터 방향을 복원합니다.