Funcionamiento de las expresiones de nivel de detalle en Tableau

En este artículo se explica cómo se calculan las expresiones de nivel de detalle y cómo funcionan en Tableau. Para obtener más información sobre las expresiones LOD y su funcionamiento, consulte el informe Comprensión de las expresiones de nivel de detalle (LOD)(El enlace se abre en una ventana nueva) en el sitio web de Tableau.

Expresiones de nivel de fila y expresiones de nivel de vista

En Tableau, las expresiones que hacen referencia a columnas de fuentes de datos no agregadas se calculan para cada fila en la tabla subyacente. En este caso, la dimensionalidad de la expresión es nivel de fila. A continuación se muestra un ejemplo de una expresión de nivel de fila:

[Sales] / [Profit]

Este cálculo se evaluará en cada fila de la base de datos. Para cada fila, el valor de Ventas de esa fila se divide por el valor de Ganancias que hay en la fila, con lo que se genera una columna nueva con el resultado de la multiplicación (un coeficiente de ganancias).

Si crea un cálculo con esta definición, lo guarda con el nombre [TasaDeGanancias] y, luego, lo arrastra del panel Datos a un estante, Tableau suele agregar el campo calculado de la vista:

SUM([ProfitRatio])

Por el contrario, las expresiones que hacen referencia a columnas de fuentes de datos agregadas se calculan en la dimensionalidad definida por las dimensiones de la vista. En este caso, la dimensionalidad de la expresión es nivel de vista. A continuación se muestra un ejemplo de una expresión de nivel de vista:

SUM(Sales) / SUM(Profit)

Si arrastra este cálculo a un estante (o lo escribe directamente en un estante como cálculo específico), Tableau lo incluye en una función AGG:

AGG(SUM(Sales) / SUM(Profit))

Esto es lo que se conoce como "cálculo agregado". Para obtener información detallada, consulte Funciones agregadas en Tableau(El enlace se abre en una ventana nueva).

Las dimensiones y los campos colocados en cualquiera de las posiciones resaltadas en la imagen siguiente contribuyen al nivel de detalle de vista:

Antes de que se admitieran las expresiones de nivel de detalle en Tableau, solo se podían crear cálculos en un nivel de detalle de vista. Por ejemplo, si intenta guardar la siguiente expresión, Tableau muestra el siguiente mensaje de error: “No es posible mezclar argumentos de agregación y no agregación con esta función”:

[Sales] – AVG([Sales])

En este caso, la intención del usuario era comparar las ventas de cada tienda con el promedio de las ventas de todas las tiendas. Ahora se puede hacer con una expresión de nivel de detalle:

[Sales] - {AVG([Sales])}

Esto es lo que se conoce como "expresión de nivel de detalle del ámbito de tabla". Consulte Ámbito de tabla.

Limitaciones de las expresiones de nivel de detalle

En las expresiones de nivel de detalle existen las siguientes limitaciones y restricciones. Consulte también Restricciones de fuente de datos para las expresiones de nivel de detalle.

  • Las expresiones de nivel de detalle que hacen referencia a las medidas de punto flotante se pueden comportar de forma inesperada cuando se usan en una vista en la que se deben comparar los valores de la expresión. Para obtener más información, consulte Comprender los tipos de datos en los cálculos(El enlace se abre en una ventana nueva).

  • Las expresiones de nivel de detalle no se muestran en la página Fuente de datos. Consulte Página de fuente de datos.

  • Al hacer referencia a un parámetro en una declaración de dimensionalidad, use siempre el nombre del parámetro y no su valor.

  • Con la combinación de datos, el campo vinculable de la fuente de datos primaria debe estar en la vista para poder usar una expresión de nivel de detalle de la fuente de datos secundaria. Consulte Solucionar problemas de combinación de datos.

Además, algunas fuentes de datos tienen límites de complejidad. Tableau no deshabilitará los cálculos para estas bases de datos, pero pueden darse errores de consulta si los cálculos son demasiado complejos.

Las expresiones de nivel de detalle pueden ser dimensiones o medidas

Cuando guarda una expresión de nivel de detalle, Tableau la añade al área Dimensiones o Medidas en el panel Datos.

Las expresiones de nivel de detalle FIXED pueden arrojar medidas o dimensiones dependiendo del campo subyacente de la expresión de agregación. Por ello, MIN([Date])} será una dimensión, ya que [Date] es una dimensión, y {fixed Store : SUM([Sales])} será una medida porque [Sales] es una medida. Si se guarda una expresión de nivel de detalle FIXED como medida, tiene la opción de moverla a las dimensiones.

Las expresiones de nivel de detalle INCLUDE y EXCLUDE siempre son medidas.

Filtros y expresiones de nivel de detalle

Hay varios tipos de filtros en Tableau, que se ejecutan en el orden siguiente de arriba abajo.

El texto de la derecha muestra en qué lugar de esta secuencia se evalúan las expresiones de nivel de detalle.

Los filtros de extracción (en naranja) solo son relevantes si va a crear una extracción de Tableau a partir de una fuente de datos. Los filtros de cálculos de tablas (azul oscuro) se aplican tras ejecutarse los cálculos, con lo que ocultan las marcas sin filtrar los datos subyacentes usados en los cálculos.

Si conoce SQL, puede considerar los filtros de medida como si fueran equivalentes a la cláusula HAVING de una consulta y los filtros de dimensión equivalentes a la cláusula WHERE.

Los cálculos FIXED se aplican antes de los filtros de dimensión. Por eso, a menos que eleve los campos del estante Filtro a Usar filtros de contexto, se omitirán. Por ejemplo, suponga que tiene el cálculo siguiente en un estante de una vista y [Estado] en otro estante:

SUM([Sales]) / ATTR({FIXED : SUM([Sales])})

Este cálculo arroja la relación entre las ventas de un estado y las ventas totales.

Si luego pone [Estado] en el estante Filtros para ocultar algunos de los estados, el filtro afectará solo al numerador del cálculo. Como el denominador es una expresión de nivel de detalle FIXED, dividirá las ventas de los estados que quedan en la vista entre las ventas totales para todos los estados, incluidos los que se han filtrado y excluido de la vista.

Las expresiones de nivel de detalle INCLUDE y EXCLUDE se consideran filtros de dimensión. Si quiere que los filtros se apliquen a la expresión de nivel de detalle FIXED pero no quiere usar filtros de contexto, puede volver a escribirlos como expresiones INCLUDE o EXCLUDE.

Agregación y expresiones de nivel de detalle

El nivel de detalle de la vista determina el número de marcas que hay en la vista. Cuando se agrega una expresión de nivel de detalle a la vista, Tableau debe armonizar dos niveles de detalle: el de la vista y el de la expresión.

El comportamiento de una expresión de detalle dentro de la vista varía en función de si el nivel de detalle de la expresión es más amplio, más estrecho o igual que el nivel de detalle de la vista. ¿A qué nos referimos con “más amplio” o “más estrecho” en este caso?

La expresión de nivel de detalle es más amplia que el nivel de detalle de la vista

Una expresión tiene un nivel de detalle más amplio que la vista si hace referencia a un subconjunto de las dimensiones de la vista. Por ejemplo, si una vista contiene las dimensiones [Categoría] y [Segmento], puede crear una expresión de nivel de detalle que use solo una de estas dimensiones:

{FIXED [Segment] : SUM([Sales])}

En este caso, la expresión tiene un nivel de detalle más amplio que la vista. Basa sus valores en una sola dimensión ([Segmento]), mientras que la vista basa su vista en dos dimensiones ([Segmento] y [Categoría]).

El resultado es que usar la expresión de nivel de detalle en la vista hace que ciertos valores se repliquen, es decir, que aparezcan varias veces.

Los valores replicados son útiles para comparar valores específicos con valores medios dentro de una categoría. Por ejemplo, el siguiente cálculo resta las ventas medias de un cliente de las ventas medias totales:

[Sales] - {FIXED [Customer Name] : AVG([Sales])}

Cuando los valores se replican, al cambiar la agregación de un campo relevante de la vista (por ejemplo, de AVG a SUM), no cambiará el resultado de la agregación.

La expresión de nivel de detalle es más estrecha que el nivel de detalle de la vista

Una expresión tiene un nivel de detalle más estrecho que la vista si hace referencia a un superconjunto de las dimensiones de la vista. Si usa este tipo de expresión en la vista, Tableau agregará los resultados hasta llegar al nivel de la vista. Por ejemplo, la siguiente expresión de nivel de detalle hace referencia a dos dimensiones:

{FIXED [Segment], [Category] : SUM([Sales])}

Si esta expresión se usa en una vista que solo tiene [Segmento] como nivel de detalle, los valores deben agregarse. Esto es lo que vería al arrastrar esa expresión a un estante:

AVG([{FIXED [Segment]], [Category]] : SUM([Sales]])}])

Tableau asigna automáticamente una agregación: en este caso, un promedio. Puede cambiar la agregación si es necesario.

Agregar una expresión de nivel de detalle a la vista

El hecho de que las expresiones de nivel de detalle se agreguen o se repliquen en la vista depende del tipo de expresión (FIXED, INCLUDE o EXCLUDE) y de si la granularidad de la expresión es más amplia o más estrecha que la de la vista.

  • Las expresiones de nivel de detalle INCLUDE tendrán el mismo nivel de detalle que la vista o uno más estrecho que el de la vista. Por lo tanto, los valores no se replicarán en ningún caso.

  • Las expresiones de nivel de detalle FIXED pueden tener un nivel de detalle más estrecho, más grueso o igual que el de la vista. La necesidad de agregar los resultados de un nivel de detalle FIXED depende de qué dimensiones estén en la vista.

  • Las expresiones de nivel de detalle EXCLUDE siempre hacen que aparezcan valores replicados en la vista. Cuando se colocan en un estante cálculos que incluyen expresiones de nivel de detalle EXCLUDE, Tableau usa de forma predeterminada la agregación ATTR (y no SUM ni AVG) para indicar que la expresión no se está agregando realmente y que cambiar la agregación no afectará a la vista.

Las expresiones de nivel de detalle siempre se encapsulan automáticamente en un agregado cuando se agregan a un estante de la vista, salvo que se usen como dimensiones. De modo que, si hace doble clic en un estante y escribe

{FIXED[Segment], [Category] : SUM([Sales])}

y, luego, pulsa Intro para confirmar la expresión, lo que verá en el estante es

SUM({FIXED[Segment], [Category] : SUM([Sales])})

Pero si hace doble clic en el estante para editar la expresión, lo que verá en el modo de edición es la expresión original.

Si encapsula una expresión de nivel de detalle en una agregación al crearla, Tableau usará la agregación que especifique usted en lugar de asignar una cuando se coloque en un estante cualquier cálculo que incluya esa expresión. Si no se necesita ninguna agregación (porque el nivel de detalle de la expresión es más amplio que el de la vista), la agregación que especificó seguirá mostrándose cuando la expresión esté en un estante, pero se ignorará.

Restricciones de fuente de datos para las expresiones de nivel de detalle

En algunas fuentes de datos, solo las últimas versiones admiten las expresiones de nivel de detalle. Algunas fuentes de datos no admiten ninguna expresión de nivel de detalle.

Además, algunas fuentes de datos tienen límites de complejidad. Tableau no deshabilitará los cálculos para estas bases de datos, pero pueden darse errores de consulta si los cálculos son demasiado complejos.

Fuente de datosSoporte
Actian VectorwiseNo admitido.
Amazon EMR Hadoop HiveAdmitido para Hive 0.13 y posteriores.
Amazon RedshiftAdmitido.
Aster DatabaseAdmitido en la versión 4.5 y posteriores.
Cloudera HadoopAdmitido para Hive 0.13 y posteriores.
Cloudera ImpalaAdmitido para Impala 1.2.2 y posteriores.
Cubos (fuentes de datos multidimensionales)No admitido.
DataStax EnterpriseNo admitido.
EXASOLAdmitido.
FirebirdAdmitido en la versión 2.0 y posteriores.
ODBC genéricoLimitado. Depende de la fuente de datos concreta.
Google Big QueryAdmitido para SQL estándar, pero no para SQL heredado.
Hortonworks Hadoop Hive

Admitido para Hive 0.13 y posteriores.

En la versión 1.1 de HIVE, las expresiones de nivel de detalle que producen combinaciones cruzadas no son fiables.

Las combinaciones cruzadas se dan cuando no hay ningún campo explícito al que combinar. Por ejemplo, en la expresión de nivel de detalle {fixed [Product Type] : sum(sales)}, cuando la vista solo contiene una dimensión [Modo de envío], Tableau crea una combinación cruzada. Una combinación cruzada produce filas que combinan cada fila de la primera tabla con cada fila de la segunda tabla.

IBM BigInsightsAdmitido.
IBM DB2Admitido en la versión 8.1 y posteriores.
MarkLogicAdmitido en la versión 7.0 y posteriores.
Microsoft AccessNo admitido.
Conexiones basadas en Microsoft Jet (conectores heredados para Microsoft Excel, Microsoft Access y texto)No admitido.
Microsoft SQL ServerSQL Server 2005 y posterior.
MySQLAdmitido.
IBM PDA (Netezza)Admitido en la versión 7.0 y posteriores.
OracleAdmitido en la versión 9i y posteriores.
Actian Matrix (ParAccel)Admitido en la versión 3.1 y posteriores.
Pivotal GreenplumAdmitido en la versión 3.1 y posteriores.
PostgreSQLAdmitido en la versión 7 y posteriores.
Progress OpenEdgeAdmitido.
SAP HANAAdmitido.
SAP Sybase ASEAdmitido.
SAP Sybase IQAdmitido en la versión 15.1 y posteriores.
Spark SQLAdmitido.
SplunkNo admitido.
Extracción de datos de TableauAdmitido.
TeradataAdmitido.
VerticaAdmitido en la versión 6.1 y posteriores.

Consulte también

Crear expresiones de nivel de detalle en Tableau

Comprensión de las expresiones de nivel de detalle (LOD)(El enlace se abre en una ventana nueva)

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!