LOOKUPVALUE

Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMittayksikköVisuaalinen laskenta -

Palauttaa rivin arvon, joka täyttää kaikki yhden tai useamman hakuehdon määrittämät ehdot.

Syntaksi

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

Parametrit

Termi Määritelmä
result_columnName Sen olemassa olevan sarakkeen nimi, joka sisältää palautettavan arvon. Se ei voi olla lauseke.
search_columnName Olemassa olevan sarakkeen nimi. Se voi olla samassa taulukossa kuin result_columnName tai liittyvässä taulukossa. Se ei voi olla lauseke. Voit määrittää useita search_columnName- ja search_value-pareja.
search_value Kohteessa search_columnName etsittävä arvo. Voit määrittää useita search_columnName- ja search_value-pareja.
alternateResult (Valinnainen) Palautettu arvo, kun result_columnName konteksti suodatetaan nollaan tai yli yhteen erilliseen arvoon. Jos tätä ei määritetä, funktio palauttaa arvon BLANK , kun result_columnName suodatetaan nollaan, tai virheen, kun result_columnName kontekstissa on useampi kuin yksi erillinen arvo.

Palautusarvo

Arvo result_columnName rivillä, jossa kaikilla search_columnName ja search_value pareilla on tarkka vastaavuus.

Jos vastaavuus ei täytä kaikkia hakuarvoja, funktio palauttaa arvon BLANK tai alternateResult (jos määritetty). Toisin sanoen funktio ei palauta hakuarvoa, jos vain jotkin ehdoista täyttyvät.

Jos useat rivit vastaavat hakuarvoja ja näiden rivien arvot result_columnName ovat identtisiä, tämä arvo palautetaan. Jos kuitenkin result_columnName palauttaa eri arvoja, funktio palauttaa virheen tai alternateResult (jos määritetty).

Huomautuksia

  • Jos taulukon, joka sisältää hakusarakkeet sisältävän tulossarakkeen ja taulukoiden, välillä on suhde, useimmissa tapauksissa -funktion RELATEDLOOKUPVALUE käyttö on tehokkaampaa ja tarjoaa paremman suorituskyvyn.

  • Voit määrittää useita pareja lle search_columnName ja search_value.

  • search_value ja alternateResult parametrit arvioidaan ennen kuin funktio iteroi hakutaulukon rivien läpi.

  • Kun se arvioidaan rivikontekstissa, LOOKUPVALUE se suorittaa kontekstisiirtymän, kuten CALCULATE, muuntaen nykyisen rivin suodattimiksi. Lasketussa sarakkeessa tämä voi lisätä riippuvuuksia saman taulukon muihin sarakkeisiin, vaikka lauseke ei viitaisikaan nimenomaan näihin sarakkeisiin. Nämä riippuvuudet voivat aiheuttaa kehäriippuvuusvirheitä.

  • LOOKUPVALUE poistaa suodattimet taulukosta, joka sisältää result_columnNamearvon , samalla suodattimen poistamistoiminnolla kuin kyseisessä ALL taulukossa. Muista taulukoista kaksisuuntaisten suhteiden kautta välitetyt suodattimet voivat silti vaikuttaa hakutulokseen. Esimerkki 3 näyttää, miten lähdetaulukon suodattimet poistetaan, kun kyseiset suodattimet rajoittavat muuten hakua.

  • Vältä -toiminnon käyttämistä ISERROR tai IFERROR kohteen palauttaman virheen sieppaamista LOOKUPVALUE. Jos jotkin funktion syötteet aiheuttavat virheen, kun yksittäistä tulostearvoa ei voida määrittää, parametrin tarjoaminen alternateResult on luotettavin ja tehokkain tapa käsitellä virhe.

  • alternateResult-parametri palauttaa virheen, jos se on määritetty power pivotin lasketussa sarakkeessa.

  • Tätä funktiota ei tueta DirectQuery-tilassa lasketuissa sarakkeissa tai rivitason suojauksen (RLS) säännöissä käytettäväksi.

Tämän artikkelin esimerkkejä voidaan käyttää Adventure Works DW 2020 Power BI Desktop -mallissa. Jos haluat hakea mallin, katso DAX esimerkkimallin.

Esimerkki 1

Tässä esimerkissä hakusanalla Keskihinta hakee sitä valuuttaa, LOOKUPVALUE jota käytettiin tilauksen maksamiseen tilauksen tilauspäivänä:

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

Tarvitset sekä tilauspäivämäärän että valuutan, jotta löydät oikean päivämäärän ja valuutan keskimääräisen hinnan. OrderDateKey ja CurrencyKey ovat avaimia, joita käytetään keskimääräisen kurssin etsimiseen Valuuttaprosentti-taulukosta.

Vaihtokurssin avulla voit laskea myyntisumman paikallisena valuuttana käyttäen:

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

Esimerkki 2

Tässä esimerkissä seuraava sales -määritetty laskettu sarake käyttää -funktiota kanava-arvojen palauttamiseen Myyntitilaus-taulukosta.

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

Koska Myyntitilaus- ja Myynti-taulukoiden välillä on suhde, on tehokkaampaa käyttää -funktiota.RELATED

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

Esimerkki 3

Tässä esimerkissä vaihda Product[ProductKey] - ja Sales[ProductKey] -suhteiden ristiinsuodatuksen suunnaksi Molemmat. Näin Myynti-suodattimet voivat suodattaa Tuotteen.

Seuraava laskettu sarake Sales-kohdassa etsii kiinteän viitetuotteen nimen. Viitetuotteen käyttäminen nykyisen myyntirivin tuotteen sijaan osoittaa, miten kaksisuuntaiset suodattimet voivat rajoittaa hakua.

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

Sisäinen kontekstin siirtymä luo suodattimia nykyiseltä Myynti-riviltä . Nämä suodattimet leviävät Product-funktioon kaksisuuntaisen suhteen kautta. Jos myyntirivillä on eri tuoteavain, haku palauttaa BLANK haun, vaikka viitetuote on olemassa.

Korvaa lasketun sarakkeen kaava seuraavalla lausekkeella. REMOVEFILTERS tyhjentää myyntisuodattimet , jotka on luotu kontekstisiirtymän avulla ennen hakua:

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

Muokattu kaava palauttaa viitetuotteen nimen riippumatta nykyisen myyntirivin tuotteesta. Palauta tämän esimerkin jälkeen suhteen alkuperäinen ristisuodatussuunta.