Loading

Usar un campo agregado para definir el nivel de detalle en un cálculo de tabla

Fecha de publicación: Jul 20, 2023
Descripción
Cuando las particiones de una vista se crean con un campo agregado, como un cálculo de tabla o una condición IF, y otro cálculo de tabla necesita devolver resultados diferentes para cada partición, el campo agragado no aparece en las opciones de "Calcular usando" para el cálculo de la tabla.

Por ejemplo, si los clientes se encuentran en una de las tres categorías ("High", "Medium" o "Low") definidas en este cálculo:

IF SUM([Sales]) < 500
THEN "low"
ELSEIF SUM([Sales]) < 5000
THEN "Medium"
ELSE "High"
END

Entonces, [Customer Name] debe estar en la vista de esta agrupación para que se calcule correctamente. Sin embargo, si [Customer Name] está en la vista, las marcas de la vista se desglosan por [Customer Name], lo que significa que no veremos un total de ventas por categoría.
Solución

Opción 1:


Englobe el cálculo agregado en la expresión FIXED de nivel de detalle. Las expresiones FIXED siempre devuelven resultados no agregados que se pueden convertir en dimensiones. 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:

  1. Cree un campo calculado con un nombre como "Categoría de ventas FIXED" con un cálculo similar a este:

    { FIXED [Customer Name] : [Sales Categories] }

  2. Sustituya [Sales Categories] con [FIXED Sales Categories] en la vista
  3. Elimine [Customer Name] de la tarjeta Marcas

Opción 2:


Cree un cálculo que use la lógica original dentro y fuera del cálculo de tabla. 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:
 

  1. Cree un campo calculado con un nombre como "Ventas por categoría de ventas", con un cálculo similar al siguiente:

    IF SUM([Sales]) < 500
    THEN
    WINDOW_SUM(
    IF SUM([Sales]) < 500
    THEN SUM([Sales])
    END
    )
     
    ELSEIF SUM([Sales]) < 5000
    THEN
     
    WINDOW_SUM(
    IF SUM([Sales]) < 5000
    THEN SUM([Sales])
    END
    )
     
    ELSE
     
    WINDOW_SUM(
    IF SUM([Sales]) >= 5000
    THEN SUM([Sales])
    END
    )
    END

  2. Arrastre [Sales Categories] al estante Filas
  3. Arrastre [Customer Name] a Detalle en la tarjeta Marcas
  4. Arrastre [Sales per Sales Category] al estante Columnas
  5. Haga clic con el botón derecho en [Sales per Sales Category] y seleccione Calcular usando > Nombre de cliente
  6. Pulse Ctrl y arrastre [Sales per Sales Category] del estante Columnas a Etiqueta, en la tarjeta Marcas.
  7. Vaya a Análisis > Apilar marcas > Desactivado.
Recursos adicionales
El cálculo de la opción 2 parece redundante, pero todas las condiciones IF son necesarias.La condición IF dentro de la expresión WINDOW_SUM() limita los datos sumados en WINDOW_SUM().El resultado de WINDOW_SUM() para caulquier categoría aparecerá en todas las categorías. Por tanto, debemos colocar la expresión WINDOW_SUM() dentro de otra condición IF que solo devuelva los resultados que queremos, en la categoría que los queremos.


Número del artículo de conocimiento

001473424

Archivos adjuntos

using aggregation as bins.twbx

1205 KB

 
Cargando
Salesforce Help | Article