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

Contar una medida

Actualizado con archivo de ejemplo: archivo de muestra

¡Hola, espero que alguien pueda ayudar!

Tengo los datos a continuación y el uso de la medida a continuación para mostrarme el ID de la más reciente "Solicitud" si había una "Respuesta" por número de cuenta. Nota: podría haber varios IDs por 1 número de cuenta, solo depende de si hubo una respuesta o no.

MeasureTM CALCULATE(MAX('Activity'[ID]),Filter('Activity', 'Activity'[Activity] ?"Request" && CALCULATE(MAX('Activity'[ID])<CALCULATE(MAX('Activity'[ID]),'Activity'[Activity]-"Response",ALLEXCEPT('Activity',' Activity'[Account]))))

CuentaActividadFecha de actividadUsuarioId
1Petición01/01/2021Tom1
1Petición01/02/2021Jim2
1Petición01/03/2021John3
1Respuesta01/04/2021Stephanie4
2Petición01/05/2021será5
2Respuesta01/06/2021Joe6
3Petición01/07/2021Anna7
3Petición01/08/2021Ámbar8
3Respuesta01/09/2021Katie9
4Petición01/10/2021Jack10
4Respuesta01/11/2021Bob11
4Petición01/12/2021John11
4Respuesta01/13/2021Tom12
5Petición01/14/2021Liam13

Así que las líneas resaltadas en amarillo es lo que mi meausre me está consiguiendo. Sin embargo, quiero ir un paso más allá y contar esa medida. Así que en este caso, sería 4. ¿Algún consejo?

Capture.PNG

Gracias de antemano!

1 ACCEPTED SOLUTION

Hey @PowerBI123456 ,

aquí encontrará un nuevo enfoque :-), tenga en cuenta que este enfoque hace referencia a las columnas de las tablas de dimensiones. Para ello también es necesario cambiar los objetos visuales. Significado: utilice columnas de las tablas de dimensiones en su lugar.
Esta medida tampoco es tan genérica, ya que devuelve el requestID máximo, por lo que devolverá los resultados esperados cada vez que se utilice el colum acoount.
Si utiliza la medida en un objeto visual de tarjeta, volverá a ejecutar 12 en lugar de 4. Si necesita el 4 recomiendo usar un SUMX o COUNTX en combinación con VALUES('...'[account]

MaxReq Star = 
var t = 
ADDCOLUMNS(
        VALUES( 'DIM: Accounts'[Account] )
        , "maxrequestid" 
            , var MaxResponseID =
                CALCULATE( 
                    MAX( 'FACT: Activity'[ID] )
                    , ALL('DIM: Date' )
                    , ALL( 'DIM: Users' )
                    , ALL( 'FACT: Activity'[ID] )             
                    , 'DIM: Activity'[Activity] = "Response"
                )
            var MaxRequestID = 
                CALCULATE( 
                    MAX( 'FACT: Activity'[ID] )
                    , ALL( 'DIM: Date' )
                    , ALL( 'DIM: Users' )
                    , 'DIM: Activity'[Activity] = "Request"
                    
                    --, 'FACT: Activity'[ID] = MaxResponseID - 1
                    , 'FACT: Activity'[ID] < MaxResponseID
                )
            return
            MaxRequestID
        )
return

CALCULATE(
    MAX( 'FACT: Activity'[ID] )
    , TREATAS( t , 'DIM: Accounts'[Account] , 'FACT: Activity'[ID] )
)

Aquí hay una captura de pantalla que muestra el uso de columna del visual del mapa de árbol:
image.png

Tenga en cuenta que el desafío general al que nos enfrentamos se basa en el hecho de que el almacén de datos (nuestro querido tabular SSAS dentro de Power BI) no conoce un tipo de datos de secuencia. A veces, aquí, esto hace las cosas difíciles, las otras veces es un plus.

Sin embargo, si esto no funciona, es posible que desee leer este artículo, aquí presento un enfoque diferente para abordar el desafío de valor anterior: El valor anterior - Mincing Data - Obtener información de datos (minceddata.info)

saludos

Tom

View solution in original post

29 REPLIES 29

TomMartenss Hi, no siempre menos 1 ya que puede ocurrir otra actividad entre una solicitud y una respuesta. Pero la última solicitud antes de recibir una respuesta debe ser la solicitud coincidente. Así que puede parecerse a lo siguiente, sólo me importan las solicitudes y la respuesta, no la otra actividad. ¿Eso ayuda? He subido los datos para incluirlos si ayudan. Archivo de ejemplo

PowerBI123456_2-1614206183556.png

¡Gracias!

Hey @PowerBI123456 ,

aquí encontrará un nuevo enfoque :-), tenga en cuenta que este enfoque hace referencia a las columnas de las tablas de dimensiones. Para ello también es necesario cambiar los objetos visuales. Significado: utilice columnas de las tablas de dimensiones en su lugar.
Esta medida tampoco es tan genérica, ya que devuelve el requestID máximo, por lo que devolverá los resultados esperados cada vez que se utilice el colum acoount.
Si utiliza la medida en un objeto visual de tarjeta, volverá a ejecutar 12 en lugar de 4. Si necesita el 4 recomiendo usar un SUMX o COUNTX en combinación con VALUES('...'[account]

MaxReq Star = 
var t = 
ADDCOLUMNS(
        VALUES( 'DIM: Accounts'[Account] )
        , "maxrequestid" 
            , var MaxResponseID =
                CALCULATE( 
                    MAX( 'FACT: Activity'[ID] )
                    , ALL('DIM: Date' )
                    , ALL( 'DIM: Users' )
                    , ALL( 'FACT: Activity'[ID] )             
                    , 'DIM: Activity'[Activity] = "Response"
                )
            var MaxRequestID = 
                CALCULATE( 
                    MAX( 'FACT: Activity'[ID] )
                    , ALL( 'DIM: Date' )
                    , ALL( 'DIM: Users' )
                    , 'DIM: Activity'[Activity] = "Request"
                    
                    --, 'FACT: Activity'[ID] = MaxResponseID - 1
                    , 'FACT: Activity'[ID] < MaxResponseID
                )
            return
            MaxRequestID
        )
return

CALCULATE(
    MAX( 'FACT: Activity'[ID] )
    , TREATAS( t , 'DIM: Accounts'[Account] , 'FACT: Activity'[ID] )
)

Aquí hay una captura de pantalla que muestra el uso de columna del visual del mapa de árbol:
image.png

Tenga en cuenta que el desafío general al que nos enfrentamos se basa en el hecho de que el almacén de datos (nuestro querido tabular SSAS dentro de Power BI) no conoce un tipo de datos de secuencia. A veces, aquí, esto hace las cosas difíciles, las otras veces es un plus.

Sin embargo, si esto no funciona, es posible que desee leer este artículo, aquí presento un enfoque diferente para abordar el desafío de valor anterior: El valor anterior - Mincing Data - Obtener información de datos (minceddata.info)

saludos

Tom

@TomMartens ¡¡¡¡Muchas gracias!!!! ¡Eres genial!

@TomMartens ¡¡¡Gracias!!! Creo que funcionará, pero sigue siendo calculador. Estoy lidiando con 20 millones de filas, así que es lento. La primera medida corrió rápido. ¿De todos modos para hacer esto más rápido?

Gracias por la aclaración, voy a ver en esto los próximos días.

No estoy seguro de si la definición actual del meaure "Max Request ID" no es 100% exacta al menos no a mi entender, ya que esta medida devuelve un valor para todas las cuentas si agrega el usuario de columna a la tabla superior derecha visule.
Desde mi entendimiento, esta medida debería devolver un valor en blanco para los Usuarios Jim y John for Account:1

saludos

Tom

@TomMartens ¡Gracias! Sí, debería estar en blanco. Es lo mejor que se me ocurrió.

@TomMartens ¡Muchas gracias! Así que me acabo de dar cuenta de que mi medida no es coger todas las solicitudes y sólo coger la máxima para cada cuenta. Así, por ejemplo, para la cuenta 4, hay 2 instancias donde hubo una solicitud antes de una respuesta, pero mi medida es sólo capturar la última. ¿Sabes cómo arreglar mi medida para que capture ambos y luego tu medida de suma captura eso por lo que su 5?

PowerBI123456_0-1613673801100.png

Syndicate_Admin
Administrator
Administrator

@TomMartens Lo siento, actualicé la medida. ¿Cómo subo una PBI?

Syndicate_Admin
Administrator
Administrator

Hola @PowerBI123456 ,

la medida hace referencia a una columna [Action ...] que no está en la tabla que proporcionó.

Cree un archivo pbix que contenga datos de ejemplo, pero que refleje el modelo de datos. Cargue el archivo en onedrive o Dropbox y comparta el enlace. Si está utilizando Excel para crear los datos de ejemplo, comparta el xlsx también.

saludos

Tom

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.