Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Coen_Thönissen
Regular Visitor

Cómo obtener líneas horizontales en lugar de líneas diagonales en mi gráfico de líneas

Hola, aquí está mi problema: en el eje X tengo 60 días calendario. En el eje Y tengo la cantidad de artículos en stock. Se trata de una medida, una fórmula DAX calculada que refleja las compras (número de mercancías entrantes) y las ventas (número de mercancías salientes). Muchos días no tienen actividad. Es un negocio bastante.

Digamos en day_10 ha habido algunas mercancías entrantes, lo que resulta en una serie de artículos en stock de un total de 80. La siguiente actividad es 6 días después, en day_16, con 24 elementos salientes. Esto hace que day_16 termine con un número de artículos en stock de un total de 56 (como 80 - 24 x 56). Hasta ahora, bien.

El problema es que mi gráfico comienza a disminuir directamente después de day_10, con -4 por día. La línea en el gráfico disminuye diagonalmente durante 6 días seguidos, para terminar exactamente en 56. Así que el punto de partida es correcto (80), el punto final es correcto (56), pero la línea debe, por supuesto, permanecer horizontalmente en 80 durante day_11, day_12, day_13, day_14 y day_15 y finalmente caer a paso por 24 el día 16.

¿Cómo obtengo una línea escalonada horizontal en mi gráfico, en lugar de líneas diagonales?

Saludos amables, Coen Thénissen

6 REPLIES 6
v-eqin-msft
Community Support
Community Support

Hola @Coen_Thönissen ,

Según mi opinión, desea lograr cambios horizontales en lugar de cambios diagonales entre dos valores no vacíos, ¿verdad?

Puede seguir estos pasos:

1. Cree una tabla de calendario:

Table 2 =
CALENDAR ( MIN ( 'Table'[Date] ), MAX ( 'Table'[Date] ) )

2.Obtenga el valor de la tabla original:

value =
LOOKUPVALUE ( 'Table'[Change], 'Table'[Date], 'Table 2'[Date] )

3. Valores de "Rellenar" en el paso 2:

fill down =
VAR LastNonBlankDate =
    CALCULATE (
        LASTNONBLANK ( 'Table 2'[Date], 1 ),
        FILTER (
            ALL ( 'Table 2' ),
            'Table 2'[Date] <= EARLIER ( 'Table 2'[Date] )
                && NOT ( ISBLANK ( 'Table 2'[value] ) )
        )
    )
RETURN
    CALCULATE (
        SUM ( 'Table 2'[value] ),
        FILTER ( ALL ( 'Table 2' ), 'Table 2'[Date] = LastNonBlankDate )
    )

Mi visualización tiene el siguiente aspecto:
10.29.2.1.PNG

Aquí está el archivo pbix.

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.

Saludos
Eyelyn Qin

dedelman_clng
Community Champion
Community Champion

Hola @Coen_Thönissen -

En la configuración de formato de un gráfico de líneas, busque en la sección "Formas" y en la parte inferior debe encontrar "Stepped On/ Off"

2020-10-26 10_28_23-Window.png

Espero que esto ayude

David

Hola David,

Gracias por ayudarme. Su solución, sin embargo, introduce un nuevo problema, ya que el paso no se hace en el último día (day_16 en mi ejemplo, que sería correcto), no en el primer día (day_10 en mi ejemplo, que sería incorrecto), sino visualmente exactamente en el medio (en day_13, lo cual es incorrecto). ¿Puede sugerir una solución en ese sentido?

Saludos amables, Coen

@Coen_Thönissen - para eso mi sugerencia sería asegurarse de que la medida calcula y da el valor anterior si no hay transacciones para ese día. A continuación, con el paso en usted debe obtener la caída / aumento directamente antes del día siguiente con las transacciones.

Si no sabe cómo hacer que el DAX funcione, comparta una copia de su PBIX o datos de muestra, diseño de modelo y código de medida.

David

Hola David,

Gracias de nuevo. Aquí algunos antecedentes más:

Sourcefile y en el modelo PBIX simplemente llamado 'Tabla':

Fechacambio
2020-03-0130
2020-03-1050
2020-03-16-24
2020-04-0512
2020-04-23-60

Medida:

Items_in_stock : CALCULATE(SUM('Table'[Change]); FILTER(ALL('Table');' Tabla'[Fecha]<-MAX('Tabla'[Fecha])))

Como se mencionó anteriormente, el gráfico de líneas que obtengo aumenta o disminuye diagonalmente desde la fecha anterior a la fecha posterior o - cuando se elige 'intervalo' - aumenta o disminuye escalonadamente exactamente en el medio entre estas fechas. Quiero que el paso se produzca en la fecha posterior (siendo la fecha del cambio posterior).

Creo que el prrblem es que la columna de fecha no es un'eje lineal', sino que está llena de 'huecos'. Pero Power BI debería ser lo suficientemente inteligente como para lidiar con esto, creo. Aunque mi ejemplo es muy simple, este es un problema que ocurre con frecuencia en el mundo real.

Saludos amables, Coen

Hola @Coen_Thönissen -

Lo que está buscando hacer es Time Intelligence, que requiere que una tabla Calendario/Fecha se realice correctamente. Puede crear una tabla de fechas de un par de maneras

DateTab = CALENDARAUTO()

DateTab = CALENDAR("1/1/2020", "12/31/2020")

A continuación, desea establecer una relación de 1 a varios entre DateTab y su tabla, a través de Table[Date]

Reemplazar tabla[Fecha] en la medida con DateTab[Fecha]

Items_in_stock =
CALCULATE (
    SUM ( 'Table'[Change] ),
    FILTER ( ALL ( 'DateTab' ), DateTab[Date] <= MAX ( DateTab[Date] ) )
)

Por último, utilice DateTab[Date] como eje X. Asegúrese de que el eje esté establecido en Continuo

2020-10-27 08_08_02-Window.png

Espero que esto ayude

David

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.