Funzione RELATED
Viene restituito un valore correlato da un'altra tabella.
Sintassi
RELATED(<column>)
Parametri
Termine |
Definizione |
---|---|
column |
Colonna che contiene i valori che si desidera recuperare. |
Valore restituito
Un singolo valore correlato alla riga corrente.
Osservazioni
La funzione RELATED richiede che vi sia una relazione tra la tabella corrente e la tabella con le informazioni correlate. Specificando la colonna che contiene i dati desiderati, la funzione segue una relazione molti-a-uno esistente per recuperare il valore dalla colonna specificata nella tabella correlata.
Se non vi è una relazione, è necessario crearla. Per ulteriori informazioni, vedere Creare una relazione tra due tabelle.
Quando la funzione RELATED esegue una ricerca, esamina tutti i valori nella tabella specificata indipendentemente da eventuali filtri applicati.
[!NOTA]
La funzione RELATED richiede un contesto di riga, pertanto può essere utilizzata solo in un'espressione di colonna calcolata, dove il contesto di riga corrente non è ambiguo oppure come funzione annidata in un'espressione che utilizza una funzione di analisi delle tabelle. Una funzione di analisi delle tabelle, ad esempio SUMX, ottiene il valore della riga corrente e quindi analizza un'altra tabella per individuare istanze di tale valore.
Esempio
Nell'esempio seguente viene creata la misura Non USA Internet Sales per produrre un report sulle vendite che esclude le vendite negli Stati Uniti. Per creare la misura, è necessario filtrare la tabella InternetSales_USD in modo da escludere tutte le vendite che appartengono agli Stati Uniti nella tabella SalesTerritory. Gli Stati Uniti, come paese, vengono visualizzati 5 volte nella tabella SalesTerritory, ovvero una volta per ognuna delle regioni seguenti: nord-ovest, nord-est, centrale, sud-ovest e sud-est.
Il primo approccio per filtrare le Internet Sales, al fine di creare la misura, può essere l'aggiunta di un'espressione di filtro simile alla seguente:
FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)
Tale approccio è tuttavia poco intuitivo e soggetto all'immissione di errori e potrebbe non funzionare se una delle regioni esistenti venisse successivamente divisa.
Un approccio migliore consiste nell'utilizzare la relazione esistente tra InternetSales_USD e SalesTerritory e indicare in modo esplicito che il paese deve essere diverso dagli Stati Uniti. A tale scopo, creare un'espressione di filtro simile alla seguente:
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
L'espressione utilizza la funzione RELATED per cercare il valore del paese nella tabella SalesTerritory, iniziando dal valore della colonna chiave, SalesTerritoryKey, nella tabella InternetSales_USD. Il risultato della ricerca viene utilizzato dalla funzione di filtro per determinare se la riga InternetSales_USD è filtrata.
[!NOTA]
Se l'esempio non funziona, potrebbe essere necessario creare una relazione tra le tabelle. Per ulteriori informazioni, vedere Relazioni tra tabelle.
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
Nella tabella seguente vengono illustrati solo i totali per ogni regione, per verificare che l'espressione di filtro nella misura Non USA Internet Sales funzioni come previsto.
Etichette di riga |
Internet Sales |
Non USA Internet Sales |
---|---|---|
Australia |
$4,999,021.84 |
$4,999,021.84 |
Canada |
$1,343,109.10 |
$1,343,109.10 |
France |
$2,490,944.57 |
$2,490,944.57 |
Germany |
$2,775,195.60 |
$2,775,195.60 |
United Kingdom |
$5,057,076.55 |
$5,057,076.55 |
United States |
$9,389,479.79 |
|
Totale complessivo |
$26,054,827.45 |
$16,665,347.67 |
Nella tabella seguente viene illustrato il report finale che è possibile ottenere se è stata utilizzata questa misura in una tabella pivot:
Non USA Internet Sales |
Etichette di colonna |
|
|
|
---|---|---|---|---|
Etichette di riga |
Accessories |
Bikes |
Clothing |
Totale complessivo |
2005 |
|
$1,526,481.95 |
|
$1,526,481.95 |
2006 |
|
$3,554,744.04 |
|
$3,554,744.04 |
2007 |
$156,480.18 |
$5,640,106.05 |
$70,142.77 |
$5,866,729.00 |
2008 |
$228,159.45 |
$5,386,558.19 |
$102,675.04 |
$5,717,392.68 |
Totale complessivo |
$384,639.63 |
$16,107,890.23 |
$172,817.81 |
$16,665,347.67 |