LOOKUPVALUE
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
esearch_value
.I parametri
search_value
ealternateResult
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
CHANNEL = RELATED('Sales Order'[Channel])
Contenuto correlato
funzione RELATED (DAX)Funzioni informazioni