Contesto nelle formule DAX

Nota: Riteniamo importante fornire il contenuto della Guida più recente non appena possibile, nella lingua dell'utente. Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Nella parte inferiore della pagina è possibile indicare se le informazioni sono risultate utili. Questo è l'articolo in lingua inglese per riferimento.

Context consente di eseguire un'analisi dinamica, in cui i risultati di una formula possono essere modificati in modo da riflettere la selezione della riga o della cella corrente e anche i dati correlati. La comprensione del contesto e l'uso di context in modo efficace sono molto importanti per la creazione di formule ad alte prestazioni, analisi dinamiche e per la risoluzione dei problemi nelle formule.

Questa sezione definisce i diversi tipi di contesto: contesto di riga, contesto di query e contesto di filtro. Questo spiega come viene valutato il contesto per le formule nelle colonne calcolate e nelle tabelle pivot.

L'ultima parte di questo articolo fornisce collegamenti a esempi dettagliati che illustrano il modo in cui i risultati delle formule cambiano in base al contesto.

Informazioni sul contesto

Le formule in PowerPivot possono essere interessate dai filtri applicati in una tabella pivot, dalle relazioni tra tabelle e dai filtri usati nelle formule. Il contesto è il modo in cui è possibile eseguire un'analisi dinamica. La comprensione del contesto è importante per la creazione e la risoluzione dei problemi delle formule.

Sono disponibili diversi tipi di contesto: contesto di riga, contesto di query e contesto di filtro.

Il contesto di riga può essere considerato come "la riga corrente". Se è stata creata una colonna calcolata, il contesto di riga è costituito dai valori di ogni singola riga e valori nelle colonne correlate alla riga corrente. Esistono anche alcune funzioni ( e ) che ottengono un valore dalla riga corrente e quindi usano tale valore durante l'esecuzione di un'operazione su un'intera tabella.

Il contesto della query si riferisce al subset di dati creati in modo implicito per ogni cella di una tabella pivot, a seconda delle intestazioni di riga e di colonna.

Il contesto di filtro è il set di valori consentiti in ogni colonna, in base ai vincoli di filtro applicati alla riga o definiti dalle espressioni di filtro all'interno della formula.

Torna all'inizio

Contesto di riga

Se si crea una formula in una colonna calcolata, il contesto di riga per tale formula include i valori di tutte le colonne nella riga corrente. Se la tabella è correlata a un'altra tabella, il contenuto include anche tutti i valori dell'altra tabella correlata alla riga corrente.

Si supponga ad esempio di creare una colonna calcolata, = [nolo] + [Imposta],

, che somma due colonne della stessa tabella. Questa formula si comporta come le formule in una tabella di Excel, che fanno riferimento automaticamente ai valori della stessa riga. Si noti che le tabelle sono diverse dagli intervalli: non è possibile fare riferimento a un valore della riga prima della riga corrente usando la notazione di intervallo e non è possibile fare riferimento a un valore singolo arbitrario in una tabella o una cella. È sempre necessario usare le tabelle e le colonne.

Il contesto di riga segue automaticamente le relazioni tra tabelle per determinare quali righe nelle tabelle correlate sono associate alla riga corrente.

La formula seguente, ad esempio, usa la funzione CORRELAta per recuperare un valore fiscale da una tabella correlata, in base all'area geografica in cui è stato inviato l'ordine. Il valore di imposta viene determinato usando il valore per l'area geografica della tabella corrente, cercando l'area geografica della tabella correlata e ottenendo quindi l'aliquota di imposta per tale area dalla tabella correlata.

= [Nolo] + RELATED (' Region ' [Aliquotad'Imposta])

Questa formula ottiene semplicemente l'aliquota fiscale per l'area geografica corrente, dalla tabella Region. Non è necessario conoscere o specificare la chiave che connette le tabelle.

Più contesto di riga

Inoltre, DAX include funzioni che iterano i calcoli su una tabella. Queste funzioni possono avere più righe correnti e contesti di riga correnti. In termini di programmazione, è possibile creare formule che rimaledicono su un ciclo interno ed esterno.

Si supponga, ad esempio, che la cartella di lavoro contenga una tabella Products e una tabella Sales . Può essere utile esaminare l'intera tabella Sales, che è piena di transazioni che coinvolgono più prodotti, e trovare la quantità più grande ordinata per ogni prodotto in una singola transazione.

In Excel questo calcolo richiede una serie di riepiloghi intermedi, che devono essere ricompilati se i dati sono cambiati. Se si è utenti di Excel, potrebbe essere possibile creare formule in forma di matrice per il processo. In alternativa, in un database relazionale è possibile scrivere le sottoselezioni annidate.

Con DAX, tuttavia, è possibile creare una singola formula che restituisce il valore corretto e i risultati vengono aggiornati automaticamente ogni volta che si aggiungono dati alle tabelle.

= MAXX (FILTER (Sales, [ProdKey] = precedente ([ProdKey])), Sales [OrderQty])

Per una procedura dettagliata dettagliata della formula, vedere l' .

In breve, la funzione precedente archivia il contesto di riga dall'operazione che ha preceduto l'operazione corrente. In qualsiasi momento, la funzione memorizza in memoria due set di contesto: un set di contesto rappresenta la riga corrente per il ciclo interno della formula e un altro set di contesto rappresenta la riga corrente per il ciclo esterno della formula. DAX inserisce automaticamente i valori tra i due cicli in modo che sia possibile creare aggregazioni complesse.

Torna all'inizio

Contesto di query

Il contesto della query si riferisce al subset di dati recuperati in modo implicito per una formula. Quando si rilascia una misura o un altro campo valore in una cella di una tabella pivot, il motore PowerPivot esamina le intestazioni di riga e di colonna, i filtri dei dati e i filtri dei report per determinare il contesto. PowerPivot effettua quindi i calcoli necessari per popolare ogni cella nella tabella pivot. Il set di dati recuperato è il contesto di query per ogni cella.

Poiché il contesto può variare in base alla posizione in cui si inserisce la formula, anche i risultati della formula variano a seconda che si usi la formula in una tabella pivot con molti raggruppamenti e filtri oppure in una colonna calcolata senza filtri e con un contesto minimo.

Si supponga ad esempio di creare questa semplice formula che somma i valori nella colonna profit della tabella Sales : = Sum (' Sales ' [profit]).

Se si usa questa formula in una colonna calcolata all'interno della tabella Sales , i risultati della formula saranno identici per l'intera tabella, perché il contesto di query per la formula è sempre l'intero set di dati della tabella Sales . I risultati avranno profitti per tutte le aree geografiche, tutti i prodotti, tutti gli anni e così via.

Tuttavia, in genere non si vuole visualizzare lo stesso risultato centinaia di volte, ma si vuole ottenere il profitto per un determinato anno, un determinato paese o area geografica, un determinato prodotto o una combinazione di questi e quindi ottenere un totale complessivo.

In una tabella pivot è facile modificare il contesto aggiungendo o rimuovendo intestazioni di colonna e di riga e aggiungendo o rimuovendo filtri dei dati. È possibile creare una formula come quella riportata sopra, in una misura, quindi rilasciarla in una tabella pivot. Ogni volta che si aggiungono intestazioni di colonna o di riga alla tabella pivot, si modifica il contesto della query in cui viene valutata la misura. Le operazioni di affettatura e filtro influenzano anche il contesto. Di conseguenza, la stessa formula usata in una tabella pivot viene valutata in un contesto di query diverso per ogni cella.

Torna all'inizio

Contesto di filtro

Il contesto di filtro viene aggiunto quando si specificano vincoli di filtro per il set di valori consentiti in una colonna o una tabella, usando gli argomenti di una formula. Il contesto di filtro si applica all'inizio di altri contesti, ad esempio contesto di riga o contesto di query.

Ad esempio, una tabella pivot calcola i valori per ogni cella in base alle intestazioni di riga e di colonna, come descritto nella sezione precedente nel contesto della query. Tuttavia, all'interno delle misure o delle colonne calcolate che si aggiungono alla tabella pivot, è possibile specificare le espressioni di filtro per controllare i valori usati dalla formula. È anche possibile deselezionare i filtri in modo selettivo in determinate colonne.

Per altre informazioni sulla creazione di filtri all'interno delle formule, vedere le funzioni di filtro.

Per un esempio di come è possibile cancellare i filtri per creare totali complessivi, vedere tutte.

Per esempi su come cancellare selettivamente e applicare filtri all'interno delle formule, vedere la funzione ALLEXCEPT.

Di conseguenza, è necessario esaminare la definizione di misure o formule usate in una tabella pivot in modo da essere a conoscenza del contesto di filtro quando si interpretano i risultati delle formule.

Torna all'inizio

Determinare il contesto nelle formule

Quando si crea una formula, PowerPivot per Excel controlla innanzitutto la sintassi generale e quindi controlla i nomi delle colonne e delle tabelle fornite rispetto alle possibili colonne e tabelle nel contesto corrente. Se PowerPivot non riesce a trovare le colonne e le tabelle specificate dalla formula, verrà visualizzato un messaggio di errore.

Il contesto viene determinato come descritto nelle sezioni precedenti, usando le tabelle disponibili nella cartella di lavoro, le relazioni tra le tabelle e gli eventuali filtri applicati.

Se ad esempio sono stati importati solo alcuni dati in una nuova tabella e non sono stati applicati filtri, l'intero set di colonne nella tabella fa parte del contesto corrente. Se sono presenti più tabelle collegate da relazioni e si lavora in una tabella pivot che è stata filtrata mediante l'aggiunta di intestazioni di colonna e l'uso dei filtri dei dati, il contesto include le tabelle correlate e i filtri dei dati.

Context è un concetto potente che può anche rendere difficile la risoluzione dei problemi relativi alle formule. È consigliabile iniziare con semplici formule e relazioni per vedere il funzionamento del contesto e quindi iniziare a sperimentare con formule semplici nelle tabelle pivot. La sezione seguente fornisce anche alcuni esempi di come le formule usano diversi tipi di contesto per restituire risultati dinamicamente.

Esempi di contesto nelle formule

  • La funzione CORRELAta espande il contesto della riga corrente in modo da includere i valori in una colonna correlata. In questo modo è possibile eseguire ricerche. L'esempio in questo argomento illustra l'interazione tra il filtro e il contesto di riga.

  • La funzione FILTER consente di specificare le righe da includere nel contesto corrente. Gli esempi in questo argomento illustrano anche come incorporare i filtri in altre funzioni che eseguono aggregazioni.

  • La funzione ALL imposta il contesto all'interno di una formula. Puoi usarlo per eseguire l'override dei filtri applicati come risultato del contesto della query.

  • La funzione ALLEXCEPT consente di rimuovere tutti i filtri tranne quelli specificati. Entrambi gli argomenti includono esempi che consentono di creare formule e comprendere contesti complessi.

  • Le funzioni precedenti e precedenti consentono di scorrere le tabelle eseguendo calcoli e facendo riferimento a un valore da un ciclo interno. Se si ha familiarità con il concetto di ricorsione e con i cicli interni ed esterni, si apprezzerà la potenza fornita dalle funzioni precedenti e quelle meno recenti. Se non si ha familiarità con questi concetti, seguire attentamente i passaggi descritti nell'esempio per vedere come vengono utilizzati i contesti interni ed esterni nei calcoli.

Torna all'inizio

Integrità referenziale

Questa sezione illustra alcuni concetti avanzati correlati ai valori mancanti nelle tabelle di PowerPivot connesse da relazioni. Questa sezione può essere utile se si dispone di cartelle di lavoro con più tabelle e formule complesse e si vuole ottenere assistenza per la comprensione dei risultati.

Se non si ha familiarità con i concetti di dati relazionali, è consigliabile leggere prima di tutto l'argomento introduttivo, Panoramica delle relazioni.

Integrità referenziale e relazioni PowerPivot

PowerPivot non richiede l'applicazione dell'integrità referenziale tra due tabelle per definire una relazione valida. Viene invece creata una riga vuota nella fine "una" di ogni relazione uno-a-molti e viene usata per gestire tutte le righe non corrispondenti della tabella correlata. Si comporta in modo efficace come outer join SQL.

Nelle tabelle pivot, se si raggruppano i dati in base a un lato della relazione, tutti i dati non corrispondenti presenti sul lato molti della relazione vengono raggruppati e verranno inclusi in totali con un'intestazione di riga vuota. L'intestazione vuota è approssimativamente equivalente al "membro sconosciuto".

Informazioni sul membro sconosciuto

Il concetto di membro sconosciuto è probabilmente familiare se si è lavorato con sistemi di database multidimensionali, ad esempio SQL Server Analysis Services. Se il termine è un nuovo utente, l'esempio seguente illustra il contenuto del membro sconosciuto e il modo in cui influisce sui calcoli.

Supponiamo che tu stia creando un calcolo che somma le vendite mensili per ogni negozio, ma una colonna nella tabella Sales non ha un valore per il nome dello Store. Dato che le tabelle per lo Store e le vendite sono connesse tramite il nome dello Store, cosa si aspetterebbe nella formula? In che modo è necessario che il gruppo di tabelle pivot visualizzi i dati di vendita non correlati a uno Store esistente?

Questo problema è quello comune nei data warehouse, in cui le tabelle di grandi dimensioni dei dati dei fatti devono essere correlate logicamente alle tabelle delle dimensioni che contengono informazioni su negozi, aree geografiche e altri attributi usati per categorizzare e calcolare i fatti. Per risolvere il problema, i nuovi fatti non correlati a un'entità esistente vengono temporaneamente assegnati al membro sconosciuto. Questo è il motivo per cui i fatti non correlati vengono visualizzati raggruppati in una tabella pivot sotto un'intestazione vuota.

Trattamento dei valori vuoti rispetto alla riga vuota

I valori vuoti sono diversi dalle righe vuote che vengono aggiunte per ospitare il membro sconosciuto. Il valore vuoto è un valore speciale usato per rappresentare valori null, stringhe vuote e altri valori mancanti. Per altre informazioni sul valore vuoto, nonché su altri tipi di dati DAX, vedere tipi di dati nei modelli di dati.

Torna all'inizio

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×