Una delle funzionalità più potenti di Power Pivot è la possibilità di creare relazioni tra tabelle e quindi usare le tabelle correlate per cercare o filtrare dati correlati. Per recuperare i valori correlati dalle tabelle, è possibile usare il linguaggio delle formule fornito con Power Pivot, Data Analysis Expressions (DAX). DAX usa un modello relazionale e pertanto può recuperare in modo semplice e accurato i valori correlati o corrispondenti in un'altra tabella o colonna. Se si ha familiarità con CERCA.VERT in Excel, questa funzionalità di Power Pivot è simile, ma molto più semplice da implementare.
È possibile creare formule che eseguono ricerche come parte di una colonna calcolata o come parte di una misura da usare in una tabella pivot o in un grafico pivot. Per altre informazioni, vedere gli argomenti seguenti:
Campi calcolati in Power Pivot
Colonne calcolate in PowerPivot
In questa sezione vengono descritte le funzioni DAX fornite per la ricerca, insieme ad alcuni esempi su come utilizzare tali funzioni.
Nota
A seconda del tipo di operazione o 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 dati corrispondenti o correlati da un'altra tabella è particolarmente utile nei casi in cui la tabella corrente contiene solo un identificatore di qualche tipo, ma i dati necessari (ad esempio il prezzo del prodotto, il nome o altri valori dettagliati) sono archiviati in una tabella correlata. È utile anche quando sono presenti più righe in un'altra tabella correlata alla riga corrente o al valore corrente. Ad esempio, è possibile recuperare facilmente tutte le vendite legate a una particolare regione, negozio o venditore.
A differenza delle funzioni di ricerca di Excel, ad esempio CERCA.VERT, che si basano su matrici, o LOOKUP, 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 subselect annidata in Transact-SQL.
Recupero di un singolo valore correlato
La funzione RELATED restituisce un singolo valore da un'altra tabella correlato al valore corrente nella tabella corrente. L'utente 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 odierne in Excel. Tuttavia, l'elenco contiene solo un numero ID dipendente, un numero ID ordine e un numero ID mittente, rendendo il report di difficile lettura. Per ottenere le informazioni aggiuntive desiderate, è possibile convertire l'elenco in una tabella collegata a Power Pivot e quindi creare relazioni con le tabelle Dipendente e Rivenditore, abbinando EmployeeID al campo EmployeeKey e ResellerID al campo ResellerKey.
Per visualizzare le informazioni di ricerca nella tabella collegata, aggiungere due nuove colonne calcolate con le formule seguenti:
= RELATED('Dipendenti'[NomeDipendente])
= RELATED('Rivenditori'[NomeAzienda])
Spedizioni di oggi prima della ricerca
| OrderID | EmployeeID | ID rivenditore |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
Tabella Dipendenti
| EmployeeID | Dipendente | Rivenditore |
|---|---|---|
| 230 | Kuppa Vamsi | Sistemi a ciclo modulare |
| 15 | Pilar Ackeman | Sistemi a ciclo modulare |
| 76 | Kim Ralls | Biciclette associate |
Spedizioni odierne con le ricerche
| OrderID | EmployeeID | ID rivenditore | 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 | Biciclette 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 ulteriori 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 ha effettuato ogni rivenditore quest'anno. È possibile creare una nuova colonna calcolata nella tabella Rivenditori che includa 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.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
In questa formula, la funzione RELATEDTABLE ottiene innanzitutto il valore di ResellerKey per ogni rivenditore nella tabella corrente. Non è necessario specificare la colonna ID in qualsiasi punto 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 ciascun rivenditore e conta le righe. Se non esiste alcuna relazione (diretta o indiretta) tra le due tabelle, verranno recuperate tutte le righe dalla tabella ResellerSales_USD.
Per il rivenditore Modular Cycle Systems nel nostro database di esempio, ci sono quattro ordini nella tabella vendite, quindi la funzione restituisce 4. Per Associated Bikes, il rivenditore non ha vendite, quindi la funzione restituisce uno spazio vuoto.
| Rivenditore | Record nella tabella vendite per questo rivenditore |
|---|---|
| Sistemi a ciclo modulare | ID rivenditore |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| ID rivenditore | |
| Biciclette associate |
Nota
Poiché la funzione RELATEDTABLE restituisce una tabella e non un singolo valore, è necessario usarla come argomento per una funzione che esegue operazioni sulle tabelle. Per altre informazioni, vedere Funzione RELATEDTABLE.
Inizio pagina