Una delle caratteristiche più potenti di Power Pivot è la possibilità di creare relazioni tra tabelle e quindi usare le tabelle correlate per cercare o filtrare i dati correlati. Per recuperare i valori correlati dalle tabelle, usare il linguaggio della formula fornito conPower Pivot, Data Analysis Expressions (DAX). DAX usa un modello relazionale e quindi può recuperare facilmente e con precisione i valori correlati o corrispondenti in un'altra tabella o colonna. Se si ha familiarità con CERCA.V in Excel, questa funzionalità in Power Pivot è simile, ma molto più facile da implementare.
È possibile creare formule che eseere ricerche come parte di una colonna calcolata o come parte di una misura da usare in una tabella pivot o in una grafico pivot. Per altre informazioni, vedere gli argomenti seguenti:
Campi calcolati in Power Pivot
Colonne calcolate in PowerPivot
Questa sezione descrive le funzioni DAX fornite per la ricerca, insieme ad alcuni esempi di come usarle.
Nota: A seconda del tipo di operazione di ricerca o della formula di ricerca che si vuole usare, potrebbe essere necessario creare prima una relazione tra le tabelle.
Informazioni sulle funzioni di ricerca
La possibilità di cercare la corrispondenza o i dati correlati da un'altra tabella è particolarmente utile nelle situazioni in cui la tabella corrente ha solo un identificatore di qualche tipo, ma i dati necessari, ad esempio il prezzo del prodotto, il nome o altri valori dettagliati, vengono archiviati in una tabella correlata. È utile anche quando in un'altra tabella sono presenti più righe correlate alla riga corrente o al valore corrente. Ad esempio, è possibile recuperare facilmente tutte le vendite collegate a una determinata area geografica, negozio o agente di vendita.
A differenza delle funzioni di ricerca di Excel, ad esempio CERCA.V, basate su matrici o CERCA, che ottiene il primo di più valori corrispondenti, DAX segue le relazioni esistenti tra tabelle unite da chiavi per ottenere il singolo valore correlato che corrisponde esattamente. DAX può anche recuperare una tabella di record correlati al record corrente.
Nota: Se si ha familiarità con i database relazionali, le ricerche in Power Pivot sono simili a un'istruzione di selezione secondaria annidata in Transact-SQL.
Recupero di un singolo valore correlato
La funzione RELATED restituisce un singolo valore di un'altra tabella correlata al valore corrente nella tabella corrente. Si specifica la colonna che contiene i dati desiderati e la funzione segue le relazioni esistenti tra le tabelle per recuperare il valore dalla colonna specificata nella tabella correlata. In alcuni casi, la funzione deve seguire una catena di relazioni per recuperare i dati.
Si supponga, ad esempio, di avere un elenco delle spedizioni di oggi in Excel. Tuttavia, l'elenco contiene solo un numero di ID dipendente, un numero di ID ordine e un numero di ID spedizioniere, rendendo difficile la lettura del report. Per ottenere le informazioni aggiuntive desiderate, è possibile convertire l'elenco in una tabella collegata Power Pivot e quindi creare relazioni con le tabelle Dipendente e Rivenditore, abbinando ID Dipendente al campo EmployeeKey e ID Rivenditore al campo ResellerKey.
Per visualizzare le informazioni di ricerca nella tabella collegata, aggiungere due nuove colonne calcolate con le formule seguenti:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])
Spedizioni di oggi prima della ricerca
OrderID |
ID dipendente |
RESELLERID |
---|---|---|
100314 |
230 |
445 |
100315 |
15 |
445 |
100316 |
76 |
108 |
Tabella Dipendenti
ID dipendente |
Dipendente |
Rivenditore |
---|---|---|
230 |
Kuppa Vamsi |
Sistemi a ciclo modulare |
15 |
Pilar Ackeman |
Sistemi a ciclo modulare |
76 |
Kim Ralls |
Bici associate |
Spedizioni di oggi con ricerche
OrderID |
ID dipendente |
RESELLERID |
Dipendente |
Rivenditore |
---|---|---|---|---|
100314 |
230 |
445 |
Kuppa Vamsi |
Sistemi a ciclo modulare |
100315 |
15 |
445 |
Pilar Ackeman |
Sistemi a ciclo modulare |
100316 |
76 |
108 |
Kim Ralls |
Bici associate |
La funzione usa le relazioni tra la tabella collegata e la tabella Dipendenti e rivenditori per ottenere il nome corretto per ogni riga del report. È anche possibile usare valori correlati per i calcoli. Per altre informazioni ed esempi, vedere Funzione RELATED.
Recupero di un elenco di valori correlati
La funzione RELATEDTABLE segue una relazione esistente e restituisce una tabella che contiene tutte le righe corrispondenti della tabella specificata. Si supponga, ad esempio, di voler scoprire quanti ordini ogni rivenditore ha effettuato quest'anno. È possibile creare una nuova colonna calcolata nella tabella Resellers che include la formula seguente, che cerca i record per ogni rivenditore nella tabella ResellerSales_USD e conta il numero di singoli ordini effettuati da ogni rivenditore.
=CONTA.RIGHE(RELATEDTABLE(ResellerSales_USD))
In questa formula, la funzione RELATEDTABLE ottiene prima il valore di ResellerKey per ogni rivenditore nella tabella corrente. Non è necessario specificare la colonna ID in un punto qualsiasi della formula, perché Power Pivot usa la relazione esistente tra le tabelle. La funzione RELATEDTABLE recupera quindi tutte le righe della tabella ResellerSales_USD correlate a ogni rivenditore e conta le righe. Se non esiste alcuna relazione (diretta o indiretta) tra le due tabelle, si otterrà tutte le righe dalla ResellerSales_USD tabella.
Per il rivenditore Modular Cycle Systems nel database di esempio, la tabella sales contiene quattro ordini, quindi la funzione restituisce 4. Per Associated Bikes, il rivenditore non ha vendite, quindi la funzione restituisce un valore vuoto.
Rivenditore |
Record nella tabella vendite per questo rivenditore |
|
---|---|---|
Sistemi a ciclo modulare |
ID rivenditore |
SalesOrderNumber |
445 |
SO53494 |
|
445 |
SO71872 |
|
445 |
SO65233 |
|
445 |
SO59000 |
|
ID rivenditore |
SalesOrderNumber |
|
Bici associate |
Nota: Poiché la funzione RELATEDTABLE restituisce una tabella, non un singolo valore, deve essere usata come argomento per una funzione che esegue operazioni sulle tabelle. Per altre informazioni, vedere Funzione RELATEDTABLE.