Condividi tramite


LOOKUPVALUE

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

Restituisce il valore per la riga che soddisfa tutti i criteri specificati da una o più condizioni di ricerca.

Sintassi

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

Parametri

Termine Definizione
result_columnName Nome di una colonna esistente che contiene il valore che si desidera restituire. Non può essere un'espressione.
search_columnName Nome di una colonna esistente. Può trovarsi nella stessa tabella di result_columnName o in una tabella correlata. Non può essere un'espressione. È possibile specificare più coppie di search_columnName e search_value.
search_value Valore da cercare in search_columnName. È possibile specificare più coppie di search_columnName e search_value.
alternateResult (Facoltativo) Valore restituito quando il contesto per result_columnName è stato filtrato fino a zero o più valori distinti. Se non specificato, la funzione restituisce BLANK quando result_columnName viene filtrato fino a zero valori o un errore quando nel contesto per result_columnName è presente più di un valore distinto.

Valore restituito

Valore di result_columnName nella riga in cui tutte le coppie di search_columnName e search_value hanno una corrispondenza esatta.

Se non esiste una corrispondenza che soddisfi tutti i valori di ricerca, vengono restituiti BLANK o alternateResult (se specificato). In altre parole, la funzione non restituisce un valore di ricerca se solo alcuni dei criteri corrispondono.

Se più righe corrispondono ai valori di ricerca e ai valori nella result_columnName per queste righe sono identiche, viene restituito tale valore. Tuttavia, se result_columnName restituisce valori diversi, viene restituito un errore o un alternateResult (se specificato).

Osservazioni

  • Se esiste una relazione tra la tabella che contiene la colonna dei risultati e le tabelle che contengono le colonne di ricerca, nella maggior parte dei casi, l'uso della funzione RELATED anziché LOOKUPVALUE è più efficiente e offre prestazioni migliori.

  • È possibile specificare più coppie di search_columnName e search_value.

  • I parametri search_value e alternateResult vengono valutati prima che la funzione eselabori le righe della tabella di ricerca.

  • Evitare di usare funzioni di ISERROR o di IFERROR per acquisire un errore restituito da LOOKUPVALUE. Se alcuni input alla funzione generano un errore quando non è possibile determinare un singolo valore di output, specificando un parametro alternateResult è il modo più affidabile e più efficiente per gestire l'errore.

  • Il parametro alternateResult restituisce un errore se specificato in una colonna calcolata di Power Pivot.

  • Questa funzione non è supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio 1

In questo esempio, LOOKUPVALUE viene usato per cercare la valuta media utilizzata per pagare l'ordine nel giorno in cui è stato effettuato l'ordine:

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

Sia la data dell'ordine che la valuta sono necessarie per trovare il tasso medio per la data e la valuta corretti. OrderDateKey e CurrencyKey sono le chiavi usate per cercare il Tasso medio nella tabella Valuta.

È possibile utilizzare il tasso di cambio per calcolare l'importo delle vendite nella valuta locale con:

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

Esempio 2

In questo esempio, la colonna calcolata seguente definita nella tabella Sales usa la funzione LOOKUPVALUE per restituire i valori del canale dalla tabella Sales Order.

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

Tuttavia, in questo caso, poiché esiste una relazione tra le tabelle Sales Order e Sales, è più efficiente usare la funzione .

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

funzione RELATED (DAX)Funzioni informazioni