Excel DAX - Errori di formula

Puoi ricevere errori quando scrivi DAX formulascon sintassi sbagliata. I campi calcolati e le colonne calcolate possono contenere funzioni DAX che richiedono un tipo specifico di argomenti. Gli argomenti delle funzioni DAX possono essere tabelle, colonne o altre funzioni DAX (funzioni DAX annidate). Poiché le funzioni DAX possono restituire tabelle e colonne, è necessario prestare attenzione per verificare che il tipo corretto di argomenti venga passato alle funzioni DAX.

Gli errori di formula DAX possono essere errori di sintassi o errori semantici. Gli errori possono verificarsi in fase di progettazione o in fase di esecuzione.

In questo capitolo verranno illustrati alcuni errori DAX comuni, le relative cause e come correggerli.

Errore DAX: calcolo interrotto

Il seguente errore può verificarsi quando si tenta di creare (in fase di progettazione) o utilizzare (in fase di esecuzione) un campo calcolato con una funzione di intelligenza temporale DAX. In ogni caso, un intervallo di date non contiguo viene passato alla funzione di time intelligence.

"DAX Error: CALCULATION ABORTED: MdxScript (instance) (00, 0) Function 'DATEADD' only works with contiguous date selections."

Causa in fase di esecuzione

Questo errore può essere visualizzato quando un campo calcolato con una funzione di intelligenza temporale DAX viene posizionato nell'area VALORI di una tabella pivot e i campi data come il mese o il trimestre vengono selezionati come filtri dei dati o filtri prima di selezionare un anno. Ad esempio, se si dispone di dati di tre anni - 2014, 2015 e 2016 e si tenta di utilizzare solo il mese di marzo senza selezionare il campo Anno, i valori non sono valori di dati contigui e verrà visualizzato un errore.

Come correggere l'errore in fase di esecuzione?

Nell'esempio sopra,

  • Per prima cosa aggiungi Anno come filtro dei dati o filtro e seleziona un anno.

  • Quindi, aggiungi Mese o Trimestre come filtro dei dati o filtro.

  • Quindi, seleziona uno o più mesi o trimestri in cui suddividere o filtrare per l'anno selezionato.

Causa in fase di progettazione

Le funzioni di intelligenza temporale DAX richiedono una colonna della data specificata per l'argomento data. La colonna della data deve avere un intervallo di date contiguo. Questo errore può essere restituito se è presente un valore di data in una o più righe nella colonna della data che non è contiguo con i valori dei dati nelle righe precedenti e successive.

Se hai importato la tabella contenente le date da un'origine dati, ricorda che molte organizzazioni eseguono processi speciali che scansionano le tabelle nei database alla ricerca di valori non validi e sostituiscono quelli con un valore particolare. In altre parole, se viene rilevata una data non valida, viene assegnato un valore di data particolare che potrebbe non essere contiguo con altri valori di dati nella colonna.

Come correggere questo errore in fase di progettazione?

Effettuare le seguenti operazioni per correggere l'errore in fase di progettazione:

  • Se la tabella delle date viene importata da un'origine dati, utilizzare Aggiorna nella finestra di PowerPivot per reimportare le modifiche trovate nell'origine.

  • Controlla i valori nella colonna della data per assicurarti che siano in un ordine contiguo. Se si trova che un valore non è a posto, dovrà essere corretto all'origine e la tabella delle date dovrà essere aggiornata.

  • Crea una tabella di date e una colonna di date separate nel modello di dati. Specificare la nuova colonna della data come argomento della data nella formula che causa l'errore. Le tabelle delle date sono facili da creare e aggiungere a un modello di dati.

Errore semantico DAX: un esempio

Il seguente errore DAX è un errore semantico:

“Una funzione 'CALCULATE' è stata utilizzata in un'espressione vero-falso utilizzata come espressione di filtro della tabella. Questo non è consentito. "

Causa

Questo errore può essere visualizzato quando una o più espressioni di filtro non possono essere utilizzate nel contesto del campo calcolato o dell'espressione della colonna calcolata.

Nella maggior parte dei casi, questo errore è causato da un'espressione di filtro specificata come argomento della funzione DAX CALCULATE. La funzione CALCULATE richiede filtri definiti come un'espressione booleana o un'espressione di tabella.

Come correggere tali errori?

È possibile correggere tali errori utilizzando la funzione DAX FILTER per definire i filtri come un'espressione di tabella, che può quindi essere utilizzata come argomento per la funzione DAX CALCULATE.