BASE DE CONOCIMIENTO

Filtrar un cálculo de tablas por otro cálculo de tablas


Publicado: 22 May 2014
Fecha de la última modificación: 13 Sep 2023

Pregunta

Cómo filtrar un cálculo de tablas por otro cálculo de tablas. Por ejemplo, si el cálculo de tablas original es un porcentaje del total de ventas por cliente y la vista se debe filtrar por los 10 clientes principales (lo cual se determina por rango), el porcentaje del total se calculará en función de todos los clientes.

Entorno

Tableau Desktop

Respuesta

Agregue el filtro de cálculo de tablas a la sintaxis de otro cálculo de tablas con la afirmación IF.

En el libro de trabajo de ejemplo adjunto, se usa el conjunto de datos de ejemplo Superstore para realizar una demostración de las instrucciones siguientes:
Paso 1: configurar la vista
  1. Arrastre [Customer Name] al estante Filas
  2. Arrastre [Ventas] a Texto en la tarjeta Marcas
  3. Haga clic con el botón derecho en (Ventas) en la tarjeta Marcas y seleccione Cálculo de tabla rápido > Porcentaje del total
  4. Haga clic con el botón derecho en [Ventas] en la tarjeta Marcas y seleccione Calcular usando > Tabla (abajo)
  5. Seleccione Análisis > Crear campo calculado.
  6. En el cuadro de diálogo Campo calculado que se abre, siga estos pasos y haga clic en Aceptar:
    • Asigne un nombre al campo calculado. En este ejemplo, el campo calculado se llama "Clasificación de ventas"
    • En el campo de fórmula, cree un cálculo parecido al siguiente:
      RANK(SUM([Sales]))
  7. Arrastre [Clasificación de ventas] al estante Filtros
  8. En el cuadro de diálogo Filtro, seleccione de 1 al 10 para la clasificación y haga clic en Aceptar.

Paso 2: crear cálculo nuevo
  1. Cree un cálculo nuevo y arrastre [Ventas] desde la tarjeta Marcas al editor de cálculo. Tableau Desktop escribirá automáticamente la fórmula para el porcentaje del total de ventas, que tendrá un aspecto similar al siguiente:

    SUM([Ventas]) / TOTAL(SUM([Ventas]))
     
  2. Ajuste cada instancia de SUM([Ventas]) con una afirmación IF que filtrará las clasificaciones menores a 10. El cálculo final quedaría como sigue:

    IF [Rank of Sales] <= 10
    THEN SUM([Ventas])
    END
    /
    WINDOW_SUM(IF [Clasificación de ventas] <= 10
    THEN SUM([Ventas])
    END)



    Nota: también es necesario reemplazar el cálculo de tablas TOTAL() y WINDOW_SUM(), ya que TOTAL solo funcionará con agregaciones y no con expresiones más complejas.
     
  3. Reemplace [Ventas] con el cálculo nuevo
¿Fue de ayuda este artículo para resolver el problema?