Añadir categoría Total a un gráfico de líneas

Buenos días, especialmente a Daniel.

 

Necesito crear un gráfico de líneas, con una serie de categorías, pero necesito además que contenga una categoría (línea) con el total, la suma del resto de categorías. Esto es lo que quiero conseguir (total es la línea discontinua):

Gráfico de líneas con total

He conseguido hacer esto metiendo en Values una medida por cada una de las categorías y la del total y dejando Legend vacío. Pero me gustaría una solución más elegante, usando el campo categoría en Legend.

Muchas gracias de antemano y un saludo.

Enrique Peña Hernando (ineco)

Hola Enrique,

disculpa que no te haya respondido antes, llevo una semana bien intensa. Me alegro de "verte" por aquí  :)

Así, de entrada, tengo que decirte que el gráfico de líneas no permite añadir una línea de "total". La única forma que se me ocurre es recurriendo a trucos que no sé si son lo que llamarías "elegantes". Te cuento el más razonable que soy capaz de imaginar:

Me he preparado un dataset ("data") de juguete para esto:

Añadir categoría total a un gráfico de líneas - Datos

...Tres categorías, para cuatro días y valores aleatorios.

Tras leer los datos, creo un calendario como tabla calculada con la función CALENDARAUTO:

Calendar = CALENDARAUTO()

...y creo el enlace entre mi tabla "data" y "Calendar".

Si llevo el campo "Date" del calendario al eje de la gráfica de líneas, el campo "Categoría" a "Leyenda", y el campo "Valor" a "Valores", obtengo una gráfica semejante a la tuya:

Añadir categoría total a un gráfico de líneas

La cuestión es que este objeto gráfico solo admite un campo en "Leyenda", y otro en "Valores", de forma que no nos queda más remedio que aceptar que van a ser los diferentes valores que tome lo que llevemos a "Leyenda" los que segmenten los datos y, por tanto, creen las líneas. Es decir, necesitaríamos que en dicho campo hubiese -además de los valores originales- un valor "Total" (por ejemplo) que contuviese los mismos valores de las demás categorías (espero estar explicándome).

Podemos hacer esto si cogemos nuestra tabla "data", sustituimos todos los valores que hay en el campo "Categoría" por el valor "Total" y, el resultado, lo unimos a la tabla "data" original. Para esto, podríamos, por ejemplo, crear una tabla calculada:

Tabla duplicada = 
    UNION(
        data;
        SELECTCOLUMNS(
            data;
            "Fecha"; data[Fecha];
            "Categoría";"Total";
            "Valor"; data[Valor])
    )

Si te fijas, en la expresión anterior estoy uniendo a "data" otra tabla formada por la misma columna de fechas de "data", el valor "Total" para un campo "Categoría" (repitiéndose dicho valor para todos los registros) y los mismos "valores" que la tabla "data" original. El resultado sería el siguiente:

Añadir categoría total a un gráfico de líneas - Tabla duplicada

Es decir, duplicamos la tabla pero sustituyendo todas las categorías por "Total" en la segunda copia.

Tras relacionar esta tabla con nuestro calendario, ya podríamos llevar a "Leyenda" el campo "Categoría" (de "Tabla duplicada"), y al campo "Valores" el campo "Valor" de la tabla anterior:

Añadir categoría total a un gráfico de líneas

(la línea roja es el total).

Para aplicarle el estilo que comentas (con guiones) tendrías que ir a la sección de formato del objeto visual y, en "Formas" activar la opción de "Personalizar serie", seleccionar el valor "Total" y darle como estilo de línea "Guiones". El resultado sería el siguiente:

Añadir categoría total a un gráfico de líneas

El resultado es exactamente el que tú quieres, pero con el handicap de tener que crear ese duplicado de tu tabla de datos. Si tienes pocos datos... no habría problema. Pero si estás trabajando con decenas de millones de registros... tal vez habría que darle una vuelta adicional...

Dime qué opinas

Un saludo

Daniel

Enviado por EnriquePeña el Vie, 07/02/2020 - 11:56