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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Crear una columna que muestre la diferencia de datos en comparación con la semana pasada en formato de fecha (AAAAWK)

Hola compañeros Power BIers

Tengo un montón de datos categorizados en formato Año y semana (AAAAWK). Por ejemplo, esta semana es 47 y el año 2022, por lo tanto, los datos de esta semana tienen fecha 202247.

Deseo crear una columna en mi matriz que muestre la diferencia en comparación con los datos de las últimas semanas (202246). Por favor, vea la captura de pantalla a continuación en mi tabla actual. A la derecha más a la derecha, deseo agregar la diferencia de semanas de existencias que mostraría +0,7 en comparación con la semana pasada para poder seguir el desarrollo de la acumulación de existencias.

sammyH_0-1669208717466.png

Esto lo puedo lograr en Excel mediante la configuración de campo de valor. Vea el resultado deseado en la captura de pantalla a continuación y resaltado en amarillo

sammyH_1-1669208985701.png

¿Alguna idea sobre cómo lograr esto en Power BI? La fecha (AAAAWK) se almacena actualmente como número entero en mi conjunto de datos. Idealmente no me gustaría cambiar esto demasiado

PD. Para los curiosos, así es como lo resolví en Excel. ¿Es posible recuperar la fórmula de DAX detrás de ella en Excel y pegarla en Power BI?

sammyH_2-1669209351987.png

Toda ayuda es muy apreciada, gracias
/Sammy

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Eh

Me las he arreglado ahora. Muchas gracias a todos por la ayuda. Si alguien está interesado, aquí está el código que utilicé con la ayuda de @TonyZhou1980. Simplemente reemplace SUB-C con sus propias subcategorías:

Dónde _previousweek =
CALCULAR(
..MAX('Power BI' [Semana]),
FILTRO(TODOSELECCIONADO('Power BI'), 'Power BI'[Semana] < ..MAX('Power BI'[Semana]))
)

Dónde _previousWEEKqty =
CALCULAR(
[Semanas de existencias (FC)],
FILTRO(TODOSELECCIONADO('Power BI'), 'Power BI'[Semana] = _previousweek)
)

Dónde _previousPRODqty =
CALCULAR(
[Semanas de existencias (FC)],
FILTRO(TODOSELECCIONADO('Power BI'), 'Power BI'[Semana] = _previousweek),
VALORES('Power BI'[Sub-C1])
)

Dónde _previousREGqty =
CALCULAR(
[Semanas de existencias (FC)],
FILTRO(TODOSELECCIONADO('Power BI'), 'Power BI'[Semana] = _previousweek),
VALORES(«Power BI»[Sub-C1]),
VALORES('Power BI'[Sub-C2])
)

Dónde _previousSUBREGqty =
CALCULAR(
[Semanas de existencias (FC)],
FILTRO(TODOSELECCIONADO('Power BI'), 'Power BI'[Semana] = _previousweek),
VALORES(«Power BI»[Sub-C1]),
VALORES('Power BI'[Sub-C2]),
VALORES('Power BI'[Sub-C3])
)

Dónde _previousARTqty =
CALCULAR(
[Semanas de existencias (FC)],
FILTRO(TODOSELECCIONADO('Power BI'), 'Power BI'[Semana] = _previousweek),
VALORES(«Power BI»[Sub-C1]),
VALORES('Power BI'[Sub-C2]),
VALORES('Power BI'[Sub-C3]),
VALORES('Power BI'[Sub-C4])
)

DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
ISINSCOPE(«Power BI»[Sub-C4]), [Semanas de existencias (FC)] - _previousARTqty,
ISINSCOPE('Power BI'[Sub-C3]), [Semanas de existencias (FC)] - _previousSUBREGqty,
ISINSCOPE(«Power BI»[Sub-C2]), [Semanas de existencias (FC)] - _previousREGqty,
ISINSCOPE('Power BI'[Sub-C1]), [Semanas de existencias (FC)] - _previousPRODqty,
ISINSCOPE('Power BI'[Semana]), [Semanas de stock (FC)] - _previousWEEKqty,
ESPACIO EN BLANCO()
)
Syndicate_Admin
Administrator
Administrator

Hola Sammy,

Por favor, pruebe esta medida y vea si funciona.

Diff Stock =
Dónde _previousweek =
calcular(
..max(Acción[Semana]),
filtro(todo('Stock'),Acción[Semana]<..max(Acción[Semana]))
)
Dónde _previousweekqty =
calcular(
suma(Acción[Cantidad de stock]),
filtro(todo(Acción),Acción[Semana]=_previousweek)
)
Dónde _previoussubqty =
calcular(
suma(Acción[Cantidad de stock]),
filtro(todo(Acción),Acción[Semana]=_previousweek),
valores(Acción[Sub-C])
)
devolución
INTERRUPTOR(
VERDADERO(),
ISINSCOPE(Acción[Sub-C]),suma(Acción[Cantidad de stock])-_previoussubqty,
ISINSCOPE(Acción[Semana]),suma(Acción[Cantidad de stock])-_previousweekqty,
espacio en blanco()
)

Hola @TonyZhou1980

Muchas gracias por contactarnos.
Estoy tratando de implementar su sugerencia, pero se queja de:
"valores(Stock[Sub-C])"

¿Qué sería Sub-C? No se declara como una variable previa. ¿Sabes cómo resolver esto?

Gracias y cuídate

/Sammy

Hola Sammy,

La [Sub-C] es la Subcategoría, puedes reemplazarla por la tuya. Avísame si funciona.

Gracias

Hola de nuevo @TonyZhou1980
Espero que tu fin de semana haya sido bueno y muchas gracias por intentar ayudarme aquí

Tengo 2 problemas a partir de ahora:

1. sum(Stock[Stock Qty]) no es una expresión válida ya que mi [Cantidad de stock] ya es una medida actual, no forma parte de los datos originales en la hoja. El código se queja con el mensaje de error "El parámetro no es el tipo correcto". No puedo usar la función SUMA en él
2. El (Stock[Sub-C]) en mi caso es (Stock[Tipo de producto]). Y cuando pongo la función VALUES delante de ella, obtengo un mensaje de error "Expresión inesperada"

¿Sabes cómo resolver esto?

Muchas gracias
/Sammy

@TonyZhou1980
Me las arreglo para resolverlo. Acabo de quitar la función SUMA y parecía funcionar.
Sin embargo, me encontré con un nuevo problema.

Ahora el Sub-C es correcto (marcado en amarillo) pero el diff general/total es incorrecto (rodeado en rojo)

sammyH_0-1671465044141.png

Estoy tratando de averiguar con el código anterior, pero soy bastante lento ... ¿Sabes?

Gracias

/Sammy

Syndicate_Admin
Administrator
Administrator

Hi, @sammyH

Por favor, pruebe fórmulas como:

diff =
VAR _previousweek =
    CALCULATE (
        MAX ( 'Table'[Week] ),
        FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Week] < MAX ( 'Table'[Week] ) )
    )
VAR _previousvalue =
    CALCULATE (
        [Stock weeks(FC)],
        FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Week] = _previousweek )
    )
RETURN
    [Stock weeks(FC)] - _previousvalue

'Tabla' [Semana] (AAAAWK) debe ajustarse al tipo 'número entero'.

Saludos
Equipo de Apoyo a la Comunidad _ Eason

Eh
Gracias por contactarnos
Intentaré esto cuando llegue a casa, esto se ve bien, no hay problemas para ajustar YYYYWK al número entero en la hoja de datos.
Sin embargo, ¿dónde puedo ingresar este código? ¿Bastará con crear una nueva medida y simplemente insertar el código allí?

Mis mejores deseos

Sammy

Hi, @sammyH

Sí, es una medida.

Debe insertar el código y ponerlo en su matriz.

Saludos
Equipo de Apoyo a la Comunidad _ Eason

Hola de nuevo @v-easonf-msft

Muchas muchas gracias por proporcionarme este código, es muy útil

Parece funcionar en un lvl total en mi matriz de powerBI, pero cuando profundizo más en subcategorías debajo de cada semana (en el tipo de producto lvl) parece no funcionar ... Permítanme proporcionarles una captura de pantalla (resaltada en amarillo) a lo que me refiero:

screenshot1.PNG

Puede ver que en lvl total (en negrita) hemos disminuido las semanas de stock con -0,1, lo cual es correcto.

Pero cuando profundizo una "rama" más en la matriz, podemos ver que para el tipo de producto "silla junior de carcasa de asiento" disminuimos con -2,2 semanas de stock en comparación con wk202245 y esto no es correcto, ya que debería ser 24,2-25,1 = -0,9

Mis mejores deseos

Sammy

Syndicate_Admin
Administrator
Administrator

@sammyH , cree una nueva tabla con distinta([Semana del año]) , diga fecha

Crear una columna - Clasificar por semana del año

Rango de semana RANKX(all('Date'),'Date'[Year Week],,ASC,Dense) //YYYYWW format

entonces puedes tener medidas como

Esta semana = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=max('Date'[Week Rank])))
Última semana = CALCULATE(sum('Table'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=max('Date'[Week Rank])-1))
Semana del año pasado = CALCULATE(sum('Tabla'[Cantidad]), FILTER(ALL('Fecha'),'Fecha'[Rango de la semana]=(max('Fecha'[Rango de la semana]) -52)))

Inteligencia de tiempo, DATESMTD, DATESQTD, DATESYTD, Week On Week, Week Till Date, Custom Period on Period,
Período personalizado hasta la fecha: https://youtu.be/aU2aKbnHuWs&t=145s

Power BI — Semana tras semana y DMT
https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-La...
https://www.youtube.com/watch?v=pnAesWxYgJ8

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.