Condividi tramite


Relazioni e ricerche nelle formule

Una delle caratteristiche più potenti dell'PowerPivot per Excel è la possibilità di creare relazioni tra tabelle e di utilizzare le tabelle correlate per cercare o filtrare dati correlati. È possibile recuperare valori correlati da tabelle utilizzando il linguaggio delle formule fornito con PowerPivot per Excel, Data Analysis Expressions (DAX). DAX consente di utilizzare un modello relazionale e pertanto è possibile recuperare facilmente e in modo accurato valori correlati o corrispondenti in un'altra tabella o colonna.

È possibile creare formule per l'esecuzione di ricerche come parte di una colonna calcolata o come parte di una misura per l'utilizzo in un grafico o una tabella pivot. Per ulteriori informazioni, vedere gli argomenti seguenti:

Creare una misura

Creare una colonna calcolata

In questa sezione vengono descritte le funzioni DAX fornite per la ricerca e vengono forniti alcuni esempi relativi all'utilizzo delle funzioni.

Nota

A seconda del tipo di operazione di ricerca o di formula di ricerca che si desidera utilizzare, potrebbe essere necessario prima creare una relazione tra le tabelle. Per informazioni sulla creazione di relazioni, vedere Relazioni tra tabelle.

Informazioni sulle funzioni di ricerca

La possibilità di cercare dati corrispondenti o correlati di un'altra tabella è particolarmente utile nelle situazioni in cui la tabella corrente include 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. È inoltre utile quando vi sono più righe in un'altra tabella correlate alla riga corrente o al valore corrente. Ad esempio, è possibile recuperare facilmente tutte le vendite associate a una particolare area, a un punto vendita o a un venditore.

A differenza delle funzioni di ricerca di Excel quali VLOOKUP, basate sulle matrici, o LOOKUP, che consente di ottenere il primo di più valori corrispondenti, in DAX vengono seguite le relazioni esistenti tra le tabelle unite in base alle chiavi per ottenere il singolo valore correlato esattamente corrispondente. DAX consente inoltre di recuperare una tabella di record correlati al record corrente.

Nota

Se si ha familiarità con i database relazionali, è possibile pensare alle ricerche in PowerPivot come simili a un'istruzione sub-SELECT nidificata in Transact-SQL.

Per ulteriori informazioni sul modello relazionale utilizzato in PowerPivot, vedere Panoramica delle relazioni.

Recupero di un singolo valore correlato

La funzione RELATED restituisce un solo valore di un'altra tabella correlata al valore corrente nella tabella corrente. Specificando la colonna che contiene i dati desiderati, la funzione segue relazioni esistenti tra 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 disporre di una cartella di lavoro di Excel che contiene un elenco delle spedizioni di oggi. L'elenco contiene tuttavia solo un numero di ID dipendente, un numero di ID ordine e un numero di ID spedizioniere, rendendo il report di difficile lettura. Per ottenere le informazioni aggiuntive desiderate, è possibile convertire l'elenco in una tabella collegata PowerPivot, quindi creare relazioni alle tabelle Employee e Reseller abbinando EmployeeID al campo EmployeeKey e ResellerID al campo ResellerKey.

Per visualizzare le informazioni sulla ricerca nella tabella collegata, si aggiungono due nuove colonne calcolate, con le formule seguenti:

= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])

Prima della ricerca

Dopo la ricerca

Order IDEmployeeIDResellerID
100314230445
10031515445
10031676108
EmployeeIDEmployeeReseller
230Kuppa VamsiModular Cycle Systems
15Pilar AckemanModular Cycle Systems
76Kim RallsAssociated Bikes
Order IDEmployeeIDResellerIDEmployeeReseller
100314230445Kuppa VamsiModular Cycle Systems
10031515445Pilar AckemanModular Cycle Systems
10031676108Kim RallsAssociated Bikes

Nella funzione vengono utilizzate le relazioni tra la tabella collegata e le tabelle Employees e Resellers per ottenere il nome corretto per ogni riga del report. È inoltre possibile utilizzare i valori correlati per i calcoli. Per ulteriori informazioni ed esempi, vedere Funzione RELATED (DAX).

Recupero di un elenco di valori correlati

La funzione RELATEDTABLE consente di seguire una relazione esistente e restituisce una tabella che contiene tutte le righe corrispondenti della tabella specificata. Si supponga ad esempio che si desideri sapere quanti ordini ogni rivenditore abbia posizionato nell'anno corrente. È possibile creare una nuova colonna calcolata nella tabella Resellers in cui è inclusa la formula seguente che consente di cercare i record per ogni rivenditore nella tabella ResellerSales_USD e di contare il numero di ordini singoli effettuati da ogni rivenditore. Queste tabelle sono parte della cartella di lavoro dell'esempio di DAX. Per ulteriori informazioni sui dati di esempio, vedere Come ottenere i dati di esempio per PowerPivot.

=COUNTROWS(RELATEDTABLE(ResellerSales_USD))

In questa formula la funzione RELATEDTABLE consente innanzitutto di ottenere il valore di ResellerKey per ogni rivenditore nella tabella corrente. Non è necessario specificare la colonna ID nella formula, in quanto PowerPivot utilizza la relazione esistente tra le tabelle. La funzione RELATEDTABLE consente di ottenere quindi tutte le righe dalla tabella ResellerSales_USD correlata a ogni rivenditore e di contare le righe. Si noti che se non c'è relazione (diretta o indiretta) tra le due tabelle, si otterranno tutte le righe dalla tabella ResellerSales_USD.

Per il rivenditore Modular Cycle Systems nel database di esempio, ci sono quattro ordini nella tabella delle vendite, pertanto la funzione restituisce il valore 4. Se per il rivenditore Associated Bikes non sono presenti vendite, pertanto la funzione restituisce un valore vuoto.

Reseller

Registra nella tabella delle vendite per questo rivenditore

Modular Cycle Systems

Reseller IDSalesOrderNumber
445SO53494
445SO71872
445SO65233
445SO59000

Associated Bikes

  

Nota

Poiché la funzione RELATEDTABLE restituisce una tabella, e non un singolo valore, deve essere utilizzata come argomento in un'altra funzione che esegue operazioni nelle tabelle. Per ulteriori informazioni, vedere Funzione RELATEDTABLE (DAX).