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
xonder
Helper I
Helper I

VERDADERO FLASE entre dos fechas

Recopilo datos de vehículos anunciados a intervalos irregulares. Cada vez que recopilo datos, obtengo una instantánea de lo que se anuncia actualmente junto con una marca de tiempo.

05.11.2020 es la primera fecha de mi conjunto de datos y 08.11.2020 es la última fecha de mi conjunto de datos

Id05.11.202006.11.202007.11.202008.11.2020
1234561111
7890111110
1213140111
1516170110

Me gustaría poder responder a la pregunta "¿Cuántos vehículos se han vendido entre dd.mm.yyyy y DD.MM.AAAA?"

Un vehículo se vende si la última fecha de un ID determinado es menor que la última fecha de mi conjunto de datos.

Si dd.mm.yyyy a 05.11.2020 y DD.MM.YYYY a 08.11.2020 se han vendido 2 vehículos, 789011 y 151617.

Si cambio mi filtro de página para que dd.mm.aaaa a 05.11.2020. y DD.MM.AAAA a 07.11.2020 y luego se han vendido 0 vehículos.

¿Cómo puedo crear una medida TRUE/FLASE que me dice que un ID de trigo se ha sald y asegurarse de que esta medida cambia en función del intervalo de fechas seleccionado.

aquí es por archivo pbix

¡Gracias!

5 REPLIES 5
v-janeyg-msft
Community Support
Community Support

Hola, @xonder

Es un placer responder por ti.

De acuerdo con su descripción, creo que puede crear una segmentación de fecha, a continuación, crear una medida para calcular el rusult deseado.

Así:

Measure =
VAR a =
    SUMMARIZE (
        ALL ( azw ),
        [ID],
        "lastdata", MAX ( azw[date] ),
        "firstdata", MIN ( azw[date] )
    )
VAR selectedmin =
    CALCULATE ( MIN ( azw[date] ), ALLSELECTED ( azw ) )
VAR selectedmax =
    CALCULATE ( MAX ( azw[date] ), ALLSELECTED ( azw ) )
VAR b =
    ADDCOLUMNS (
        a,
        "status",
            IF (
                NOT ( [lastdata] < selectedmin
                    || [firstdata] > selectedmax ),
                IF ( [lastdata] < selectedmax, 1, 0 )
            )
    )
RETURN
    SUMX ( b, [status] )

1.png

Aquí está mi archivo .pbix de ejemplo. Espero que ayude.

Si no resuelve su problema, por favor no dude en preguntarme.

Saludos

Janey Guo

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @v-janeyg-msft ,

¿Hay alguna manera de hacer que la medida funcione con otros filtros que no sean azw[date]. Todos los gráficos de mi trabajo cuando se filtran por azw[brand] excepto este.

A continuación se muestra un ejemplo de filtrado por azw[marca] - "Mercedes". El número de coches vendidos (106) debería, teóricamente, disminuir cuando se selecciona para mostrar el número de Mercedes vendidos.

image.pngimage.png

Hola, @xonder

Intente cambiar 'all' a 'allselected' en la fórmula anterior.

Saludos

Janey Guo

Hola @v-janeyg-msft ,

Obtengo resultados inconsitent dependiendo del filtro que use.

Creé la medida según sus instrucciones:

Cars Sold = 
VAR a =
    SUMMARIZE (
        ALLSELECTED( azw ),
        [ID],
        "lastdata", MAX ( azw[date] ),
        "firstdata", MIN ( azw[date] )
    )
VAR selectedmin =
    CALCULATE ( MIN ( azw[date] ), ALLSELECTED ( azw ) )
VAR selectedmax =
    CALCULATE ( MAX ( azw[date] ), ALLSELECTED ( azw ) )
VAR b =
    ADDCOLUMNS (
        a,
        "status",
            IF (
                NOT ( [lastdata] < selectedmin
                    || [firstdata] > selectedmax ),
                IF ( [lastdata] < selectedmax, 1, 0 )
            )
    )
RETURN
    SUMX ( b, [status] )

Y funciona exactamente como debería dar el resultado correcto.

Luego resumo esto en una nueva tabla donde puedo calificar cada ID en "Vendido" o "Para La Venta":

Sale = 
VAR a =
    SUMMARIZE (
        ALLSELECTED( azw ),
        [ID],
        "lastdata", MAX ( azw[date] ),
        "firstdata", MIN ( azw[date] )
    )
VAR selectedmin =
    CALCULATE ( MIN ( azw[date] ), ALLSELECTED ( azw ) )
VAR selectedmax =
    CALCULATE ( MAX ( azw[date] ), ALLSELECTED ( azw ) )
VAR b =
    ADDCOLUMNS (
        a,
        "status",
            IF (
                NOT ( [lastdata] < selectedmin
                    || [firstdata] > selectedmax ),
                IF ( [lastdata] < selectedmax, "Sold", "For Sale" )
            )
    )
RETURN
    SUMMARIZE(b, azw[ID], [status], [lastdata], "selectedmax", CALCULATE(selectedmax))

Y obtengo esta tabla (el título de la columna oculta es "Cars Sold"):

image.png

Ahora me gustaría utilizar esta tabla para que esto pueda filtrar por venta / para la venta. Por deifinción, si filtro por vendido, debería conseguir mantener el mismo total de 192. Pero por alguna razón este cambio a 186 como se muestra a continuación:

image.png

¿Tiene alguna explicación de por qué los últimos 6 ID se marcan correctamente como "Vendido" pero la incorrectación da valor de 0?

Muchas gracias por su ayuda.

Gracias @v-janeyg-msft . Esto funciona exactamente como yo deseaba!!!

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.