LOOKUPVALUE

Şunlar için geçerlidir:Hesaplanan sütunHesaplanan tabloÖlçüGörsel hesaplama

Bir veya daha fazla arama koşulu tarafından belirtilen tüm ölçütleri karşılayan satırın değerini döndürür.

Sözdizimi

LOOKUPVALUE (
    <result_columnName>,
    <search_columnName>,
    <search_value>
    [, <search2_columnName>, <search2_value>]…
    [, <alternateResult>]
)

Parametre

Terim Tanım
result_columnName Döndürmek istediğiniz değeri içeren mevcut bir sütunun adı. Bu bir ifade olamaz.
search_columnName Var olan bir sütunun adı. result_columnName ile aynı tabloda veya ilişkili bir tabloda olabilir. Bu bir ifade olamaz. Birden çok search_columnName ve search_value çifti belirtebilirsiniz.
search_value search_columnName içinde aranacak değer. Birden çok search_columnName ve search_value çifti belirtebilirsiniz.
alternateResult (İsteğe bağlı) result_columnName bağlamı sıfıra veya birden fazla ayrı değere filtrelendiğinde döndürülen değer. Belirtilmezse işlev, result_columnName sıfır değerlerine filtrelendiğinde veya result_columnName bağlamı birden fazla ayrı değere sahip olduğunda bir hata döndürür BLANK .

Dönüş değeri

Tüm result_columnName ve search_columnName çiftlerinin tam eşleşmeye sahip olduğu satırdaki search_value değeri.

Hiçbir eşleşme tüm arama değerlerini karşılarsa, işlev veya BLANK (belirtilirse) döndürüralternateResult. Başka bir deyişle, ölçütlerden yalnızca bazıları eşleşiyorsa işlev arama değeri döndürmez.

Arama değerleriyle eşleşen birden çok satır varsa ve bu satırlar için içindeki result_columnName değerler aynıysa, bu değer döndürülür. Ancak, farklı değerler döndürürse result_columnName işlev bir hata veya alternateResult (belirtilirse) döndürür.

Açıklamalar

  • Sonuç sütununu içeren tablo ile arama sütunlarını içeren tablolar arasında bir ilişki varsa, çoğu durumda işlevi yerine RELATED kullanmak LOOKUPVALUE daha verimlidir ve daha iyi performans sağlar.

  • birden çok ve search_columnNameçifti search_value belirtebilirsiniz.

  • search_value ve alternateResult parametreleri, işlev arama tablosunun satırları arasında yinelemeden önce değerlendirilir.

  • Satır bağlamında değerlendirildiğinde, LOOKUPVALUE gibi CALCULATEgeçerli satırı filtrelere dönüştüren bağlam geçişi gerçekleştirir. Hesaplanmış bir sütunda, ifade bu sütunlara açıkça başvurmasa bile, bu aynı tablodaki diğer sütunlara bağımlılıklar oluşturabilir. Bu bağımlılıklar döngüsel bağımlılık hatalarına neden olabilir.

  • LOOKUPVALUE filtrelerini içeren result_columnNametablodan kaldırır ve bu tabloya uygulanan filtre kaldırma davranışıyla ALL aynıdır. Çift yönlü ilişkiler aracılığıyla diğer tablolardan yayılan filtreler yine de arama sonucunu etkileyebilir. Örnek 3'de, bu filtreler aramayı kısıtladığında kaynak tablonun filtrelerinin nasıl kaldırılacağı gösterilmektedir.

  • tarafından ISERRORdöndürülen bir hatayı yakalamak için veya IFERROR kullanmaktan LOOKUPVALUE kaçının. İşleve yapılan bazı girişler tek bir çıkış değeri belirlenemediğinde hatayla sonuçlanırsa, parametre sağlamak alternateResult hatayı işlemenin en güvenilir ve en yüksek performanslı yoludur.

  • alternateResult parametresi, Power Pivot hesaplanmış sütununda belirtilirse bir hata döndürür.

  • Bu işlev, hesaplanan sütunlarda veya satır düzeyi güvenlik (RLS) kurallarında kullanıldığında DirectQuery modunda kullanılmak üzere desteklenmez.

Bu makaledeki örnekler örnek Adventure Works DW 2020 Power BI Desktop modeliyle kullanılabilir. Modeli almak için bkz.örnek modeli .

Örnek 1

Bu örnekte, LOOKUPVALUE siparişin düzenlendiği gün sipariş için ödeme yapmak için kullanılan para birimi için Ortalama Oran araması yapılır:

Exchange Rate =
LOOKUPVALUE (
    'Currency Rate'[Average Rate],
    'Currency Rate'[CurrencyKey], [CurrencyKey],
    'Currency Rate'[DateKey], [OrderDateKey]
)

Doğru tarih ve para birimi için Ortalama Oran'ı bulmak için hem Sipariş Tarihi hem de Para Birimi gerekir. OrderDateKey ve CurrencyKey, Para Birimi Fiyatı tablosunda Ortalama Fiyat'ı aramak için kullanılan anahtarlardır.

Yerel para birimi cinsinden Satış Tutarı'nı hesaplamak için Döviz Kurunu kullanabilirsiniz:

Sales Amount Local Currency =
[Sales Amount] * [Exchange Rate]

Örnek 2

Bu örnekte, Sales tablosunda tanımlanan aşağıdaki hesaplanmış sütun, LOOKUPVALUE tablosundan kanal değerlerini döndürmek için işlevini kullanır.

CHANNEL =
LOOKUPVALUE (
    'Sales Order'[Channel],
    'Sales Order'[SalesOrderLineKey], [SalesOrderLineKey]
)

Ancak bu durumda Sales Order ve Sales tabloları arasında bir ilişki olduğundan işlevini kullanmak RELATED daha verimli olur.

CHANNEL =
RELATED ( 'Sales Order'[Channel] )

Örnek 3

Bu örnekte Product[ProductKey] ile Sales[ProductKey] arasındaki ilişkinin çapraz filtre yönünü Her İkisi olarak değiştirin. Bu, Sales filtrelerinin Ürün'e filtre uygulamasına olanak tanır.

Aşağıdaki Sales hesaplanmış sütunu, sabit başvuru ürününün adını arar. Geçerli satış satırındaki ürün yerine bir başvuru ürünü kullanmak, çift yönlü filtrelerin aramayı nasıl kısıtlayabildiğini gösterir.

Reference Product Name =
VAR ReferenceProductKey = 528
RETURN
    LOOKUPVALUE ( 'Product'[Product], 'Product'[ProductKey], ReferenceProductKey )

İç bağlam geçişi geçerli Sales satırından filtreler oluşturur. Bu filtreler çift yönlü ilişki aracılığıyla Product'a yayılır. Farklı bir ürün anahtarına sahip bir satış satırı için, başvuru ürünü mevcut olsa bile arama döndürülüyor BLANK .

Hesaplanan sütunun formülünü aşağıdaki ifadeyle değiştirin. REMOVEFILTERS aramadan önce bağlam geçişi tarafından oluşturulan Satış filtrelerini temizler:

Reference Product Name =
VAR ReferenceProductKey = 528
RETURN
    CALCULATE (
        LOOKUPVALUE ( 'Product'[Product], 'Product'[ProductKey], ReferenceProductKey ),
        REMOVEFILTERS ( Sales )
    )

Düzeltilen formül, geçerli satış satırındaki üründen bağımsız olarak başvuru ürününün adını döndürür. Bu örnekten sonra ilişkinin özgün çapraz filtre yönünü geri yükleyin.