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
mikelee1701
Helper III
Helper III

Comparación de dos valores de intervalo de tiempo dinámico en Power BI

Hola

Estoy tratando de obtener consejos sobre cómo conseguir BPI que me permita comparar dos períodos de tiempo similares a este:

https://www.sqlbi.com/articles/filtering-and-comparing-different-time-periods-with-power-bi/

Y

https://www.reddit.com/r/PowerBI/comments/8bqzon/can_i_build_a_power_bi_report_that_compares_two/

Sin embargo, los ejemplos anteriores son para la suma de las ventas sobre las ventas anteriores. Necesito comparar valores por día de un intervalo de tiempo anterior a un intervalo de tiempo más reciente.

En los ejemplos siguientes hechos a partir de enlaces anteriores, los días se compensan y no puedo comparar el primer y último día (o cualquier rango de desplazamiento que elija).

Por ejemplo, obtendré algo como esto:

mikelee1701_3-1593476819637.png

Representación gráfica:

mikelee1701_1-1593475798227.jpeg

Lo que quiero hacer es alinear los días en los que el primer día para el 25 de noviembre de 2019 (xx.994.958) se compara con Nov26,2018 (xx,810,236) (y xx,191,297 a xx,081,877).

En este momento la única comparación es en noviembre 26, que no es lo que quiero.

Necesito ser capaz de elegir cualquier lapso de tiempo a cualquier otro lapso de tiempo (podría ser el año pasado vs este año, pero no necesariamente). Necesidad de poder usar dos rebanadoras. Uno para el período anterior y la segunda segmentación para el segundo período. Ser capaz de comparar los valores para cada día desde el primer día del primer período de la segmentación de datos hasta el primer día del segundo período de tiempo de la segunda segmentación y así sucesivamente. Si el intervalo de fechas no es exactamente el mismo, digamos que la primera segmentación es un intervalo de 40 días y la segunda segmentación de datos es de 47 días, simplemente no compare los valores de los últimos 7 días.

Agradecería mucho que alguien me ayudara.

Gracias

Mike

1 ACCEPTED SOLUTION
mahoneypat
Employee
Employee

Pruebe este enfoque para obtener la funcionalidad deseada.

Haga una tabla Date duplicada sin relación con las otras tablas (supongo que ya tiene una tabla Date conectada a la tabla de hechos).

Haga una 2a segmentación con las fechas de la nueva tabla Date (Date2 en la expresión siguiente).

Pruebe esta expresión con los nombres de tabla y columna reales.

Slicer 2 Rating =
VAR __thisdate =
    SELECTEDVALUE ( Date1[Date] )
VAR __minslicer1 =
    CALCULATE ( MIN ( Date1[Date] ), ALLSELECTED ( Date1[Date] ) )
VAR __daysin =
    DATEDIFF ( __minslicer1, __thisdate, DAY ) + 1
VAR __minslicer2 =
    CALCULATE ( MIN ( Date2[Date] ), ALLSELECTED ( Date2[Date] ) )
VAR __prevdate = __minslicer2 + __daysin
RETURN
    CALCULATE ( [Rating], Date1[Date] = __prevdate )

Aquí hay una foto que muestra la funcionalidad deseada con el enfoque anterior.

twodates.png

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

5 REPLIES 5
mahoneypat
Employee
Employee

Pruebe este enfoque para obtener la funcionalidad deseada.

Haga una tabla Date duplicada sin relación con las otras tablas (supongo que ya tiene una tabla Date conectada a la tabla de hechos).

Haga una 2a segmentación con las fechas de la nueva tabla Date (Date2 en la expresión siguiente).

Pruebe esta expresión con los nombres de tabla y columna reales.

Slicer 2 Rating =
VAR __thisdate =
    SELECTEDVALUE ( Date1[Date] )
VAR __minslicer1 =
    CALCULATE ( MIN ( Date1[Date] ), ALLSELECTED ( Date1[Date] ) )
VAR __daysin =
    DATEDIFF ( __minslicer1, __thisdate, DAY ) + 1
VAR __minslicer2 =
    CALCULATE ( MIN ( Date2[Date] ), ALLSELECTED ( Date2[Date] ) )
VAR __prevdate = __minslicer2 + __daysin
RETURN
    CALCULATE ( [Rating], Date1[Date] = __prevdate )

Aquí hay una foto que muestra la funcionalidad deseada con el enfoque anterior.

twodates.png

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Hola Pat,

¡Gracias esto está mucho más cerca que nunca!

Me di cuenta de que mi segundo rango de fechas era un día de descuento, así que saqué el "+1" en el VAR __daysin. Parece estar funcionando bien ahora.

A continuación obtengo las comparaciones anteriores y actuales que se ven muy bien:

Tengo curiosidad por qué la línea total no es correcta (su muestra parece apagado también)?

total.png

nota lateral:

Tuve algunos problemas con mi tabla después de que intenté insertar mi segunda fila de fecha de la tabla date2 (para verlo como el suyo), tengo duplicados como abajo, pero no necesito ver el segundo conjunto de fechas de todos modos:

dups.png

tal vez fue porque mi tabla de hechos tuve que usar "sum"(No pude conseguir que funcione sin) en la columna [ratings] (CALCULATE(sum(ShipRateTrack[Rating]),'Date'[Date] ? __prevdate)?

Gracias

Mike

Hola Pat,

¡Gracias esto está mucho más cerca que nunca!

Me di cuenta de que mi segundo rango de fechas era un día de descuento, así que saqué el "+1" en el VAR __daysin. Parece estar funcionando bien ahora.

A continuación obtengo las comparaciones anteriores y actuales que se ven muy bien:

Tengo curiosidad por qué la línea total no es correcta (su muestra parece apagado también)?

nota lateral:

Tuve algunos problemas con mi tabla después de que intenté insertar mi segunda fila de fecha de la tabla date2 (para verlo como el suyo), tengo duplicados como abajo, pero no necesito ver el segundo conjunto de fechas de todos modos:

dups.png

tal vez fue porque mi tabla de hechos tuve que usar "sum" en la columna [ratings] (CALCULATE(sum(ShipRateTrack[Rating]),'Date'[Date] - __prevdate)?

Gracias

Mike

lbendlin
Super User
Super User

Para cada una de sus segmentaciones de datos que necesita para identificar la fecha visible mínima (es decir, la fecha en el cuadro de la izquierda) - a través de min(allselected).

A continuación, debe restar el min izquierdo de las fechas mínimas correctas y utilizar ese valor delta resultante como el cambiador para todos sus cálculos a través de DateAdd().

amitchandak
Super User
Super User

@mikelee1701 , deje que la primera segmentación de datos esté en la fecha conectada a la fecha de sua suponer de la tabla. Puede tener una segunda cortadora en la fecha no conectada

La primera medida tiene que responder a la fecha y está conectada hasta la fecha por lo que la medida simple servirá.

probar una segunda medida como. Mueve la fecha detrás.


nueva medida ?
var _min á minx(allselected(Date),Date[Date])
var _min1 á minx(allselected(Date1),Date1[Date])
var _diff á datediff(_min1,_min,Day)

devolución
calculate([measure], dateadd(Date[Date],_diff,day))

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.