LOOKUPVALUE

Si applica a: Calcolo visivo misura tabella calcolata colonna calcolata

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 contenente i valori da restituire. Non può essere un'espressione.
search_columnName Nome della 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 a più di un valore distinto. Se non specificato, la funzione restituisce BLANK quando result_columnName viene filtrato fino a valori zero o un errore quando è presente più di un valore distinto nel contesto per result_columnName.

Valore restituito

Valore del parametro result_columnName in corrispondenza della riga in cui per tutte le coppie di search_columnName e search_value esiste una corrispondenza esatta.

Se non è presente alcuna corrispondenza che soddisfa tutti i valori di ricerca, viene restituito BLANK o alternateResult, se specificato. In altre parole, la funzione non restituisce un valore di ricerca se vengono soddisfatti solo alcuni dei criteri.

Se più righe corrispondono ai valori di ricerca e i valori in result_columnName per queste righe sono identici, viene restituito questo valore. Se invece result_columnName restituisce valori diversi, viene restituito un errore o 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 al posto di 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 esegua l'iterazione delle righe della tabella di ricerca.

  • Evitare di usare funzioni ISERROR o IFERROR per acquisire un errore restituito da LOOKUPVALUE. Se alcuni input per la funzione generano un errore quando non è possibile determinare un singolo valore di output, specificare un parametro alternateResult rappresenta il modo più veloce e affidabile 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 nella modalità DirectQuery se usata in colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio 1

In questo esempio, LOOKUPVALUE viene usato per cercare il tasso medio (Average Rate) per la valuta 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]
)

Per trovare il tasso medio per la data e la valuta corrette sono necessari sia la data dell'ordine che la valuta. OrderDateKey e CurrencyKey sono le chiavi usate per cercare il tasso medio nella tabella Currency Rate.

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

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

Esempio 2

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

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

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

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

Funzione RELATED (DAX)
Funzioni informative