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
ezh0ng
Frequent Visitor

¿Cómo puedo capturar datos de cambio y dar secuencia

Hola.

Quiero hacer notación cuando el precio cambia y dar número seqencial también.

Porque, quiero ver los datos cambiados en las últimas 6 veces.

Mis datos se ven así.

AAAAMMSkuMontónPrecio
202001MM01F110
202001MM01F210
202001MF01D15
202002MM01F112
202002MM01F210
202002MF01D15
202003MM01F112
202003MM01F29
202003MF01D15
202004MM01F112
202004MM01F210
202004MF01D14

Mi plan era cambiar la notación primero, y darles rangos desc orden como abajo.

AAAAMMSkuMontónPrecioEstadorango
202001MM01F110Cambiado2
202001MM01F210Cambiado4
202001MF01D15Cambiado2
202002MM01F112Cambiado1
202002MM01F210Cambiado3
202002MF01D15  
202003MM01F112  
202003MM01F29Cambiado2
202003MF01D15  
202004MM01F112  
202004MM01F210Cambiado1
202004MF01D14Cambiado1

Hice la columna STATUS,

ESTADO DE LA PANTALLA DE ESTADO DE LA
VAR lastStatus ?
CALCULAR(
MIN([PRECIO])
, PREVIOUSMONTH('D_Dates'[AAAAMMDD])
, ALLEXCEPT(FACTTABLE, 'FACTTABLE'[SKU], 'FACTTABLE'[LOT])
)
devolución
IF([PRICE]-lastStatus, "", "Changed")

pero RANK.

Estoy tirando aplicar RANKX() de muchas maneras, pero, puedo ver mensajes de error solamente.

¿Mi enfoque es correcto? y ¿Cómo puedo dar el segundo a los cambios?

Gracias por leer, y esperaré el consejo tuyo.

saludos.

1 ACCEPTED SOLUTION

Hola

Por favor, pruebe esta columna de rango:

Column-Rank = 
VAR a =
    RANKX (
        FILTER (
            ALLSELECTED ( FactTable ),
            FactTable[Column-Status] <> BLANK ()
                && FactTable[SKU] = EARLIER ( FactTable[SKU] )
                && FactTable[LOT] = EARLIER ( FactTable[LOT] )
        ),
        FactTable[MonthNo],
        ,
        DESC,
        DENSE
    )
RETURN
    IF ( FactTable[Column-Status] <> BLANK (), a, BLANK () )

El resultado muestra:

15.PNG

Saludos

Giotto Zhi

View solution in original post

8 REPLIES 8
v-gizhi-msft
Community Support
Community Support

Hola

De acuerdo con su descripción, por favor tome los siguientes pasos:

1)Crear dos columnas en FactTable:

YYYYMM = FORMAT(FactTable[Date],"YYYYMM")
MonthNo = FactTable[Date].[MonthNo]

2)Crear una medida de estado:

Status = 
VAR LastMonthPrice =
    CALCULATE (
        MAX ( FactTable[PRICE] ),
        FILTER (
            ALLSELECTED ( FactTable ),
            FactTable[SKU] IN FILTERS ( FactTable[SKU] )
                && FactTable[LOT] IN FILTERS ( FactTable[LOT] )
                && FactTable[MonthNo]
                    = MAX ( FactTable[MonthNo] ) - 1
        )
    )
RETURN
    IF (
        MONTH ( MAX ( FactTable[Date] ) )
            = MONTH ( MINX ( ALL ( FactTable ), FactTable[Date] ) ),
        "Changed",
        IF ( MAX ( FactTable[PRICE] ) = LastMonthPrice, "", "Changed" )
    )

3)Crear una medida de rango:

Rank = 
VAR a =
    RANKX (
        FILTER (
            ALLSELECTED ( FactTable ),
            [Status] <> BLANK ()
                && FactTable[SKU] IN FILTERS ( FactTable[SKU] )
                && FactTable[LOT] IN FILTERS ( FactTable[LOT] )
        ),
        CALCULATE ( SUM ( FactTable[MonthNo] ) ),
        ,
        DESC,
        DENSE
    )
RETURN
    IF ( [Status] <> BLANK (), a, BLANK () )

4)El resultado muestra:

36.PNG

Consejos: Creo que el estado de la fila marcado por la línea roja en el resultado esperado debe estar en blanco no "Cambiado" porque en el mismo [SKU] y [LOT], el precio del mes anterior es el mismo con el precio de esta fila como 10.

35.PNG

Así que el resultado debe mostrarse como mi captura de pantalla anterior.

Si he malinterpretado su requisito y lógica, por favor por favor por favor por favor por favor, por favor, hágamelo saber.

Aquí está mi archivo pbix de prueba:

pbix

Espero que esto ayude.

Saludos

Giotto Zhi

Hola, @v-gizhi-msft.

¡Son medidas lo que quiero! Muchas gracias 🙂

Si no le importa, ¿puede ayudarme a aplicar eso a las columnas calculadas?

Porque quiero filtrar datos por cambio o no. Las medidas no se pueden filtrar en la página, por lo que necesito hacer esas columnas.

Pero, cuando intenté, un mensaje devolvió: "Se detectó una dependencia circular"

O bien, ¿hay alguna manera de aplicar la medida al filtro de página?

saludos

Jihong.

Hola

Por favor, pruebe esta columna:

Column = 
VAR LastMonthDate =
    DATE ( YEAR ( [Date] ), MONTH ( [Date] ) - 1, DAY ( [Date] ) )
VAR LastMonthPrice =
    CALCULATE (
        SUM ( FactTable[PRICE] ),
        FILTER (
            ALLSELECTED ( FactTable ),
            FactTable[SKU] = EARLIER ( FactTable[SKU] )
                && FactTable[LOT] = EARLIER ( FactTable[LOT] )
                && FactTable[Date] = LastMonthDate
        )
    )
RETURN
    IF (
        MONTH ( FactTable[Date] )
            = MONTH ( CALCULATE ( MIN ( FactTable[Date] ), 'FactTable' ) ),
        "Changed",
        IF ( FactTable[PRICE] = LastMonthPrice, "", "Changed" )
    )

El resultado muestra:

5.PNG

Y luego puede filtrar fácilmente esta columna de estado en el panel de filtro de página.

Si mi respuesta ha resuelto su problema, por favor márquelo como una solución para que otros lo vean.

¡Gracias!

Saludos

Giotto Zhi

@v-gizhi-msft,

Lo siento. No tenía suficiente explicación.

También quiero agregar la columna RANK (seq).

Para ello, puedo agregar la condición de límite o el filtro de segmentación de datos.

(por ejemplo, mostrar el historial del cambio hasta 3 veces, o 6 veces...)


He estado en problemas por dos días, pero tu consejo me saca de.

saludos

Jihong.

Hola

Por favor, pruebe esta columna de rango:

Column-Rank = 
VAR a =
    RANKX (
        FILTER (
            ALLSELECTED ( FactTable ),
            FactTable[Column-Status] <> BLANK ()
                && FactTable[SKU] = EARLIER ( FactTable[SKU] )
                && FactTable[LOT] = EARLIER ( FactTable[LOT] )
        ),
        FactTable[MonthNo],
        ,
        DESC,
        DENSE
    )
RETURN
    IF ( FactTable[Column-Status] <> BLANK (), a, BLANK () )

El resultado muestra:

15.PNG

Saludos

Giotto Zhi

TomMartens
Super User
Super User

Hola @ezh0ng ,

¿puede por favor profundizar en la clasificación, tengo que admitir que no entiendo cómo se compone la clasificación (secuencia)?.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

@TomMartens, Gracias por responder.

Quiero dar seq por YYYYMM desc por SKU.

Por favor, consulte la tabla a continuación.

AAAAMMSkuMontónPrecioEstadoRANK(seq)
202004MF01D14Cambiado1
202001MF01D15Cambiado2
202002MF01D15  
202003MF01D15  
202002MM01F112Cambiado1
202001MM01F110Cambiado2
202003MM01F112  
202004MM01F112  
202004MM01F210Cambiado1
202003MM01F29Cambiado2
202002MM01F210Cambiado3
202001MM01F210Cambiado4

Cree una medida de este mes y el mes pasado y utilíquela en el rango. para obtener este mes y el último rango de la polilla

Obtener una fecha primero

fecha: Fecha(izquierda([AAAAMM],4),derecha([AAAAMM],2),1)

Utilícelo con el calendario de fechas

MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
last MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))

Ahora crea dos medidas de rango

Para el rango Refiera estos links
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale

Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

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.