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
Syndicate_Admin
Administrator
Administrator

Cómo mostrar los mismos datos del año pasado basados en datos de recuentos distintos

Básicamente necesito ayuda para crear la columna (LY) - El año pasado basado en la misma semana. (Resaltado en rojo)

El DAX para TY es

TY - Calcular( Recuento diferenciado (Ventas[MBR_NO]),

Groupby(Ventas, Ventas[Categoría], Ventas[YearWeek]))

¿Cómo obtengo para la columna LY para que aparezca como la tabla siguiente.

echow_0-1611149937738.png

Nota: La fila en blanco entre 201947 y 202042 es para mostrar que debe haber la continuación de la semana del año restante.

1 ACCEPTED SOLUTION

No @echow,

Puede consultar los siguientes pasos para cumplir sus requisitos:

1. Cree una nueva tabla con categoría e índice y, a continuación, utilice los campos de índice como la 'orden por columna' de los campos de tipo.

Category = 
DATATABLE ( "Type", STRING, "Index", INTEGER, { { "TY", 1 }, { "LY", 2 } } )

2. Escriba una medida con la función switch para calcular en función de las categorías actuales.

Measure = 
VAR currType =
    SELECTEDVALUE ( 'Category'[Type] )
VAR currYW =
    MAX ( Sale[YearWeeK] )
RETURN
    SWITCH (
        currType,
        "TY",
            CALCULATE (
                SUM ( Sale[MBR_NO] ),
                ALLSELECTED ( 'Sale' ),
                VALUES ( Sale[Category] ),
                VALUES ( 'Sale'[YearWeeK] )
            ),
        "LY",
            CALCULATE (
                SUM ( Sale[MBR_NO] ),
                FILTER (
                    ALLSELECTED ( 'Sale' ),
                    'Sale'[YearWeeK]
                        = ( LEFT ( currYW, 4 ) - 1 ) * 100
                            + RIGHT ( currYW, 2 )
                ),
                VALUES ( Sale[Category] )
            )
    )

3. Cree imágenes de matriz basadas en la tabla sin procesar, nuevos campos de tabla y use measure on value field.

5.png

saludos

Xiaoxin Sheng

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Anteriormente he intentado el problema anterior con este código, pero aparece como en blanco en el LY que sospecho que es porque no tengo una función como la función SUMX.
Número semanal de miembros por Sku LY ?
Var CurrentWeek ? SELECTEDVALUE(DATE_TABLE[C_WEEK])
VAR CurrentYear ? SELECTEDVALUE(DATE_TABLE[C_YEAR])
Var MaxWeekNumber ? CALCULATE(max(DATE_TABLE[C_WEEK]),all(DATE_TABLE[CALENDAR_DATE]))
devolución

CALCULATE(DISTINCTCOUNT(SALES[MBR_NO]),
GROUPBY(SALES, SALES[CATEGORY], DATE_TABLE[C_YEARWEEK]),
FILTRO(todos(DATE_TABLE),
DATE_TABLE[C_WEEK] - CurrentWeek && DATE_TABLE[C_YEAR] - CurrentYear - 1
))
Para la función SUMX funciona, ¿puedo hacer algo similar para un recuento distinto también?
Ventas LY ?
Var CurrentWeek ? SELECTEDVALUE(DATE_TABLE[C_WEEK])
VAR CurrentYear ? SELECTEDVALUE(DATE_TABLE[C_YEAR])
Var MaxWeekNumber ? CALCULATE(max(DATE_TABLE[C_WEEK]),all(DATE_TABLE[CALENDAR_DATE]))

devolución
SUMX(
FILTRO(todos(DATE_TABLE),
DATE_TABLE[C_WEEK] á CurrentWeek && DATE_TABLE[C_YEAR] - CurrentYear - 1),
[Ventas])

No @echow,
¿Puede compartir algunos datos ficticios con una estructura de datos similar y los resultados esperados? Debería ayudarnos a aclarar su escenario y probar la fórmula de codificación.

Cómo obtener respuestas a su pregunta rápidamente

saludos
Xiaoxin Sheng

@v-shex-msft , acabo de agregar un conjunto de datos ficticio y el resultado.

No @echow,

Puede consultar los siguientes pasos para cumplir sus requisitos:

1. Cree una nueva tabla con categoría e índice y, a continuación, utilice los campos de índice como la 'orden por columna' de los campos de tipo.

Category = 
DATATABLE ( "Type", STRING, "Index", INTEGER, { { "TY", 1 }, { "LY", 2 } } )

2. Escriba una medida con la función switch para calcular en función de las categorías actuales.

Measure = 
VAR currType =
    SELECTEDVALUE ( 'Category'[Type] )
VAR currYW =
    MAX ( Sale[YearWeeK] )
RETURN
    SWITCH (
        currType,
        "TY",
            CALCULATE (
                SUM ( Sale[MBR_NO] ),
                ALLSELECTED ( 'Sale' ),
                VALUES ( Sale[Category] ),
                VALUES ( 'Sale'[YearWeeK] )
            ),
        "LY",
            CALCULATE (
                SUM ( Sale[MBR_NO] ),
                FILTER (
                    ALLSELECTED ( 'Sale' ),
                    'Sale'[YearWeeK]
                        = ( LEFT ( currYW, 4 ) - 1 ) * 100
                            + RIGHT ( currYW, 2 )
                ),
                VALUES ( Sale[Category] )
            )
    )

3. Cree imágenes de matriz basadas en la tabla sin procesar, nuevos campos de tabla y use measure on value field.

5.png

saludos

Xiaoxin Sheng

Tabla de Ventas

CALENDAR_DATEMBR_NOArtículoCategoríaSemana
14/10/20191A1A201942
14/10/20193B3B201942
14/10/20193B3B201942
14/10/20194A4A201942
14/10/20195A5A201942
15/10/20196A6A201942
15/10/20197A7A201942
15/10/20199A9A201942
15/10/201913A13A201942
15/10/201914B14B201942
15/10/201914B14B201942
16/10/201918A18A201942
16/10/201918A18A201942
16/10/201921A21A201942
17/10/201922A22A201942
17/10/201923B23B201942
17/10/201924B24B201942
17/10/201933B33B201942
18/10/201936B36B201942
18/10/201937B37B201942
18/10/201940A40A201942
18/10/201940A40A201942
18/10/201940B40B201942
18/10/201941B41B201942
18/10/201942A42A201942
19/10/201943A43A201942
19/10/201944B44B201942
19/10/201944A44A201942
20/10/201951A51A201942
20/10/201952B52B201942
20/10/201955A55A201942
20/10/201956A56A201942
21/10/201957B57B201943
21/10/201957B57B201943
21/10/201957B57B201943
21/10/201960B60B201943
21/10/201963B63B201943
24/10/201964A64A201943
24/10/201965A65A201943
24/10/201965B65B201943
24/10/201968A68A201943
24/10/201969B69B201943
24/10/201970A70A201943
27/10/201971A71A201943
27/10/201971B71B201943
27/10/201973B73B201943
27/10/201975B75B201943
27/10/201977A77A201943
14/10/20201A1A202042
14/10/20202A2A202042
14/10/20203B3B202042
14/10/20203B3B202042
15/10/20206A6A202042
15/10/20207A7A202042
15/10/20208B8B202042
17/10/202025A25A202042
18/10/202038A38A202042
18/10/202039A39A202042
18/10/202040B40B202042
18/10/202041B41B202042
18/10/202042A42A202042
19/10/202043A43A202043
19/10/202044B44B202043
19/10/202045A45A202043
19/10/202046A46A202043
19/10/202047B47B202043
19/10/202048B48B202043
19/10/202049B49B202043
20/10/202055A55A202043
21/10/202061A61A202043
21/10/202062B62B202043
21/10/202062B62B202043
24/10/202064A64A202043
24/10/202070A70A202043

Tabla de fechas

CALENDAR_DATEC_YEARWEEK
10/10/2019201941
11/10/2019201941
12/10/2019201941
13/10/2019201941
14/10/2019201942
15/10/2019201942
16/10/2019201942
17/10/2019201942
18/10/2019201942
19/10/2019201942
20/10/2019201942
21/10/2019201943
22/10/2019201943
23/10/2019201943
24/10/2019201943
25/10/2019201943
26/10/2019201943
27/10/2019201943
8/10/2020202041
9/10/2020202041
10/10/2020202041
11/10/2020202041
12/10/2020202042
13/10/2020202042
14/10/2020202042
15/10/2020202042
16/10/2020202042
17/10/2020202042
18/10/2020202042
19/10/2020202043
20/10/2020202043
21/10/2020202043
22/10/2020202043
23/10/2020202043
24/10/2020202043
25/10/2020202043

Resultado

EmpresaEmpresaTazaTaza
CategoríaABAB
2019421711
20194368
202042841711
2020437568

TY - Calcular( Recuento diferenciado (Ventas[MBR_NO]),

Groupby(Ventas, Ventas[Categoría], Ventas[YearWeek]))

¿Cómo obtengo LY?

Syndicate_Admin
Administrator
Administrator

@echow, para la inteligencia de la semana puede clasificar su semana de año. Usted tiene que utilizar una tabla de semana/fecha separada

una nueva columna

Rango de la semana - RANKX(all('Date'),'Date'[Year Week],ASC,Dense) //YYYYMM formato

y tratar de medir como

Esta semana: CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])
Last Week ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])-1))
Last year WeekTM CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-(max('Date'[Week Rank]) -52)))
Last 8 weeks ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]>'max('Date'[Week Rank])-8 && & 'Date'[Week Rank]<-max('Date'[Week'[Week Rank])))

Power BI — Semana a semana y WTD
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

Power BI — Año tras año con o sin inteligencia de tiempo
https://medium.com/@amitchandak.1978/power-bi-ytd-questions-time-intelligence-1-5-e3174b39f38a
https://www.youtube.com/watch?v=km41KfM_0uA

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. Consulte :radacad sqlbi My Video Series Aprecia tus Felicitaciones.

Mi tabla Sales está conectada a una tabla de calendario. Acabo de publicar otro código por encima del cual probablemente imitar a lo que tiene, pero probablemente necesito una función DISTINCTCOUNTX, que no existe.

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.