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:

Misure in PowerPivot

Colonne calcolate

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 sulle 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 ID

EmployeeID

ResellerID

100314

230

445

100315

15

445

100316

76

108

EmployeeID

Employee

Reseller

230

Kuppa Vamsi

Modular Cycle Systems

15

Pilar Ackeman

Modular Cycle Systems

76

Kim Ralls

Associated Bikes

Order ID

EmployeeID

ResellerID

Employee

Reseller

100314

230

445

Kuppa Vamsi

Modular Cycle Systems

100315

15

445

Pilar Ackeman

Modular Cycle Systems

100316

76

108

Kim Ralls

Associated 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.

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. Tramite la funzione RELATEDTABLE si ottengono e si contano tutte le righe della tabella ResellerSales_USD correlate a ogni rivenditore. Se non esiste alcuna 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

Record nella tabella delle vendite per questo rivenditore

Modular Cycle Systems

Reseller ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

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.

Vedere anche

Concetti

Aggiungere calcoli ai report, ai grafici e alle tabelle pivot

Compilare formule per i calcoli

Panoramica di Data Analysis Expressions (DAX)

Aggregazioni nelle formule

Altre risorse

Relazioni tra tabelle