Loading

Un campo calculado indica resultados nulos

Fecha de publicación: Nov 13, 2023
Descripción
Los campos calculados indican valores nulos o en blanco en lugar de los resultados esperados

Cause

  • En los casos 1, 2 y 4 cualquier cálculo que incluya NULL indicará NULL porque los valores NULL no son numéricos y, por tanto, requieren un tratamiento especial.
  • En el caso 3, Tableau añade ELSE NULL a cualquier cálculo lógico que no tenga una instrucción ELSE. Esto significa que, si todas las condiciones son False, se indicará NULL.
  • En el caso 5, cualquier número dividido por cero es indefinido matemáticamente. Para añadir coherencia, Tableau muestra el valor como NULL. Si necesita más información, consulte este artículo de Wikipedia: División por cero.
Solución
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 1: Las expresiones que contienen un campo con un valor NULL pueden indicar valores NULL
La expresión [Sales]+[Profit] devolverá NULL para los registros de los datos subyacentes en los que una o ambas medidas sean NULL. La expresión SUM([Sales])+SUM([Profit]) también puede devolver NULL, aunque las agregaciones como SUM() ignoran los valores NULL si la suma total devuelve NULL.

Solución: introduzca los campos o agregaciones en ZN()
La función ZN() convierte valores nulos en ceros.

[Sales] + [Profit] se convertiría en ZN( [Sales] ) + ZN( [Profit] )

SUM( [Sales] ) + SUM( [Profit] ) se convertiría en ZN( SUM( [Sales] )) + ZN( SUM( [Profit] ))
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 2: Las condiciones que contienen un valor NULL pueden indicar valores NULL
Las condiciones que hacen referencia a algún valor NULL devolverán NULL. Por ejemplo, [Region] = NULL siempre devolverá un valor NULL.

Solución: use ISNULL() o IFNULL()
La función ISNULL() comprobará si un campo o valor literal es NULL e indicará True o False. La función IFNULL() sustituirá valores NULL con un valor especificado.

[Region] = NULL se convertiría en ISNULL( [Region] )
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 3: Las instrucciones CASE o IF sin ELSE indicarán valores NULL si ninguna condición es True
Tableau lee cada condición hasta que una sea True e indica ese valor. Si ninguna condición es True, Tableau indicará el valor en la instrucción ELSE. Si no hay instrucciones ELSE, Tableau indicará NULL. Por ejemplo, el cálculo siguiente siempre indicará NULL porque "North Pole" no es una región en el conjunto de datos Superstore de muestra:
 
IF [Región] = "North Pole"
THEN [Ventas]
END
 
Opción 1: cambie la condición para que indique True. Ejemplo:

IF [Region] = "Central"
THEN [Ventas]
END


Opción 2: añada una instrucción ELSE para indicar un valor distinto de NULL. Ejemplo:

IF [Región] = "North Pole"
THEN [Ventas]
ELSE 0
END
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 4: Las expresiones que incluyan varias instrucciones CASE o IF mutuamente exclusivas podrían indicar valores NULL
Los cálculos que comparan instrucciones IF o CASE, o que contienen varias condiciones que nunca indican True al mismo tiempo, pueden devolver un valor NULL. El siguiente ejemplo que usa los datos de Superstore devolverá siempre un valor NULL porque no hay un registro en los datos subyacentes en los cuales las instrucciones IF también devuelvan un valor distinto a NULL: 
IF [Region] = "Central" THEN [Sales] END
-
IF [Region] = "West" THEN [Sales] END

Solución: modificar los cálculos para que todas las expresiones devuelvan valores no NULL

Opción 1 

Englobe cada instrucción IF THEN con una agregación como SUM():
SUM( IF [Region] = "Central" THEN [Sales] END )
 - 
SUM( IF [Region] = "West" THEN [Sales] END )

Nota: Esta opción no funcionará si cualquiera de las dimensiones utilizadas en la instrucción condicional se incluyen en la vista. El ejemplo anterior no funcionará si se incluye [Region] en la vista.


Opción 2

Utilice una expresión de nivel de detalle (LOD) para cada instrucción IF THEN agregada. Por ejemplo:
{ FIXED : SUM( IF [Region] = "Central" THEN [Sales] END ) }

-

{ FIXED : SUM( IF [Region] = "West" THEN [Sales] END ) }

 

Nota: Es posible que necesite añadir dimensiones de la vista al cálculo anterior (después de FIXED).

Opción 3

Utilice una función de tabla para cada comando IF THEN agregado. Por ejemplo:
WINDOW_SUM( SUM( IF [Region] = "Central" THEN [Sales] END ))
- 
WINDOW_SUM( SUM( IF [Region] = "West" THEN [Sales] END ))
Para obtener otro ejemplo sobre el uso de funciones de tablas, consulte Calcular la diferencia entre dos valores de la misma medida en una vista.
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 5: Conversión de una cadena no numérica en numérica
Una cadena (también llamada valor de texto) que contenga caracteres no numéricos devolverá un valor NULL cuando se convierte en número.

Solución: modificar la cadena para eliminar los caracteres no numéricos
Por ejemplo, si el campo [Precio] contiene la cadena "$4,50", el siguiente cálculo indicará un valor NULL:

FLOAT( [Price] )

Si todos los valores en [Precio] tienen un símbolo "$" delante, el cálculo podrá tener el siguiente aspecto:

FLOAT( RIGHT( [Price], LEN( [Price] ) - 1 ))

Si [Precio] contiene valores de cadena con el símbolo "$" y otros que no lo tienen, se puede modificar el cálculo al siguiente:

FLOAT(
IF ISNULL( FLOAT( LEFT( [Price],1 )))
THEN RIGHT( [Precio], LEN( [Price] ) - 1 )
ELSE [Precio]
END

)
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 6: Las expresiones que se dividen entre cero devuelven NULL
Cualquier número dividido por cero indicará un valor NULL en Tableau.

Solución: cambie el denominador a otro valor.
HAGA CLIC PARA EXPANDIR LA SOLUCIÓN
Escenario 7: DATE() o DATEPARSE() podrían indicar NULL
Las funciones DATE() o DATEPARSE() podrían indicar NULL si el formato de la fecha del valor de texto no es compatible con la configuración regional del equipo. Para obtener más información, consulte Convertir un campo en un campo de fecha.

La función DATEPARSE() podría indicar NULL si el formato de fecha especificado no coincide con el formato de fecha del campo. Por ejemplo, el campo [Order Date] (Fecha de pedido) contiene valores con el formato m/d/aaaa, como "1/13/2018". El cálculo DATEPARSE('m-d-yyyy', [Order Date] ) indicará valores NULL porque usa guiones en vez de barras inclinadas.

Solución: cambiar el formato de fecha para que coincida con el formato de fecha de los datos
Número del artículo de conocimiento

001474028

 
Cargando
Salesforce Help | Article