KNOWLEDGE BASE

Impossibile convertire la misura in dimensione


Pubblicato: 01 May 2013
Data dell'ultima modifica: 17 Mar 2023

Problema

Quando crei un campo calcolato, Tableau Desktop potrebbe riconoscere il campo come misura piuttosto che come dimensione. Quando provi a convertire il campo in una dimensione, potrebbe non essere possibile.

Ambiente

Tableau Desktop

Soluzione

Opzione 1: Aggiungi un'istruzione FIXED

La funzione FIXED del livello di dettaglio (LOD) può essere convertita in una dimensione. A seconda del calcolo originale la soluzione esatta sarà diversa, ma ricorda che il calcolo nel suo complesso deve essere non aggregato (FIXED, campi non aggregati, parametri e valori letterali costanti sono tutti non aggregati). Osserva gli esempi che seguono:
 
Esempio 1
Può essere solo una misura:
IF SUM([VENDITE]) < 100
THEN "Basso"
ELSE "Alto"
END	
Può essere convertita in una dimensione:
IF { FIXED [Regione] : SUM( [Vendite] ) } < 100
THEN "Basso"
ELSE "Alto"
END	
 
Esempio 2
Può essere solo una misura:
AVG( 
   IF { FIXED [Regione] : SUM( [Vendite] ) } < 100 
   THEN "Basso" 
   ELSE "Alto" 
   END 
)
Può essere convertita in una dimensione:
{FIXED [Categoria] : AVG(
   IF { FIXED [Regione] : SUM( [Vendite] ) } < 100
   THEN "Basso"
   ELSE "Alto"
   END
) }
 
Esempio 3
Può essere solo una misura:
ATTR( [Categoria] ) + " value"
Può essere convertita in una dimensione:
{ FIXED [ID ordine] : MIN( [Categoria] ) } + " value"
 
Nota: è stato necessario sostituire ATTR() con MIN() perché ATTR() è una funzione tabella e non può essere usata all'interno di un'espressione FIXED. ATTR() restituisce NULL se è presente più di un valore univoco di [Categoria] in una partizione (riga, cella, barra, linea, punto, ecc...) nella vista, il che aiuta a identificare i problemi di qualità nei dati. MIN(), invece, restituirà sempre il valore minimo, che è il primo in ordine alfabetico per i valori di stringa. Fintantoché MIN( [Categoria] ) è fisso per una dimensione o combinazione di dimensioni che ha sempre solo un valore di categoria, non si verificheranno problemi.
 

Opzione 2: Rimuovi le aggregazioni

Talvolta l'aggregazione non è effettivamente necessaria. Ad esempio, { FIXED [Regione] : SUM( [Vendite] } restituisce le vendite totali per regione, ma se l'origine dati ha solo un record per regione, allora [Vendite] restituirà lo stesso valore.
 
Esempio 1
Può essere solo una misura:
IF SUM([VENDITE]) < 100
THEN "Basso"
ELSE "Alto"
END	
Può essere convertita in una dimensione:
IF [Vendite] < 100
THEN "Basso"
ELSE "Alto"
END	

 

Opzione 3: Utilizza un campo contenitore generato da Tableau

In alcuni casi può essere possibile sostituire il calcolo originale con un campo contenitore generato da Tableau. Consulta Creare contenitori da una misura continua
per le istruzioni.
 

Opzione 4: Effettua il calcolo in Tableau Prep

L'output da Tableau Prep sarà sempre non aggregato e pertanto può sempre essere convertito in una dimensione. A seconda del calcolo originale, i passaggi necessari in Tableau Prep saranno diversi. In generale, per replicare un'espressione come SUM( [Vendite] ) in Tableau Prep, ti servirà un passaggio di aggregazione.

I calcoli tabella non possono essere resi non aggregati poiché non possono essere posizionati all'interno di funzioni di livello di dettaglio. Alcuni calcoli tabella possono essere ricreati in Tableau Prep. Ad esempio, LOOKUP() può talvolta essere sostituito con un self-join shifted. Consulta Lookup Table Calculation in Tableau Prep (Calcolo tabella Lookup in Tableau Prep)
 

Opzione 5: Crea un join dei dati anziché utilizzare il data blending

I campi da un'origine dati secondaria devono essere aggregati. Si tratta di una limitazione del data blending e non esistono soluzioni alternative. Valuta un join tra database diversi o la creazione di join in Tableau Prep.
 

Causa

Se si utilizza un'aggregazione nel campo calcolato, la misura non può essere convertita in una dimensione dal momento che i risultati del calcolo sono dinamici.

Ad esempio, SUM( [Vendite] ) restituirà risultati diversi quando [Regione] è nello spazio Righe rispetto a quando [Categoria] è nello spazio Righe. Tuttavia, l'espressione {FIXED [Regione] : SUM( [Vendite] ) } indicherà sempre le vendite totali per regione. L'aggiunta dell'istruzione FIXED indica a Tableau come calcolare SUM(), e quindi indica a Tableau come raggruppare ciascun record in base alle vendite totali della regione a cui appartiene.

 

Ulteriori informazioni

Perché Tableau utilizza le dimensioni e le misure?

Tableau sfrutta le proprietà comuni dei dati condivisi tra diverse origini dati in modo da prendere decisioni intelligenti su come visualizzare i dati.

Ad esempio, supponiamo che la tua origine dati contenga un campo con valori numerici ma con nome "ID."  Quando aggiungi "ID" allo spazio Righe anziché ottenere un grafico a barre poco significativo che somma tutti i valori ID, si ottiene una riga per ciascun ID.  Come fa Tableau a sapere di dover fare così?  I campi denominati "ID" sono un caso speciale e sono considerati dimensioni per impostazione predefinita.

Le dimensioni contengono dati utilizzati per raggruppare altri dati e pertanto Tableau sa che le dimensioni generalmente devono essere intestazioni piuttosto che grafici, anche se contengono dati numerici. 

Dimensioni e misure sono concetti di gestione dei dati che danno a Tableau degli indizi su come devono essere visualizzati i dati. Per ulteriori informazioni su come Tableau gestisce dimensioni e misure, consulta Dimensioni e misure, blu e verde

 
Con questo articolo hai risolto il problema?