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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
BlackBird
Frequent Visitor

Recuento de la última actualización por día

Estoy trabajando en un informe covid-19 de casos sospechosos y confirmados para los contratos de mi empresa, y necesito contar la cantidad de casos para cada día, basado en LastUpdate.

Mi conjunto de datos se ve así

LastUpdateContratoNombreEmpleadoSospechaConfirmado
01/04/2020AEmployeeANoNo
01/04/2020AEmpleadoBNoNo
01/04/2020AEmployeeCNoNo
01/04/2020BEmpleadoNo
01/04/2020BEmployeeENoNo
01/04/2020CEmployeeFNoNo
01/04/2020CEmployeeGNoNo
01/04/2020CEmpleadoHNo
02/04/2020AEmployeeANoNo
02/04/2020AEmpleadoBNo
02/04/2020AEmployeeCNoNo
02/04/2020BEmpleadoNo
02/04/2020BEmployeeENoNo
03/04/2020AEmployeeANoNo
03/04/2020AEmpleadoBNo
03/04/2020AEmployeeCNoNo
03/04/2020BEmpleadoNo
03/04/2020BEmployeeENoNo
03/04/2020CEmployeeFNoNo
03/04/2020CEmployeeGNoNo
03/04/2020CEmpleadoHNo
04/04/2020BEmpleadoNo
04/04/2020BEmployeeENoNo
04/04/2020CEmployeeFNoNo
04/04/2020CEmployeeGNoNo
04/04/2020CEmpleadoHNo

y estoy tratando de generar esto

FechaSospechaConfirmado
01/04/202020
02/04/202030
03/04/202021
04/04/202021

No todos los contratos informan todos los días, en este caso necesito contar la última fecha que ha actualizado.

Al igual que en el 02/04, los contratos A y B notificaron 2 casos sospechosos + actualización del contrato C de 01/04 con 1 caso sospechoso.

Ahora no puedo abordar esto, ¿puedes ayudarme?

4 REPLIES 4
Greg_Deckler
Super User
Super User

OK, este fue complicado, pero creo que lo tengo, ver PBIX adjunto, el patrón básico es:

Suspected Measure = 
    VAR __Date = MAX('Table'[LastUpdate])
    VAR __Table =
        ADDCOLUMNS(
            SUMMARIZE(
                FILTER(ALL('Table'),[LastUpdate]<=__Date),
                [Contract],
                "LastDate",MAX('Table'[LastUpdate])
            ),
            "Suspected",COUNTROWS(FILTER(ALL('Table'),'Table'[Contract]=EARLIER([Contract]) && [LastUpdate] = [LastDate] && [Suspected]="Yes"))
        )
RETURN
    SUMX(FILTER(__Table,[LastDate] <= __Date),[Suspected])

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Gracias Greg funcionó perfectamente!

Pero no funcionaba con filtros como pensaba... y supongo que debería haberlo mencionado en el post, lo siento.

Tengo una mesa separada con todos los contratos, con una columna de administración que utilizo en una segmentación de datos.

Así:

ContratoAdministración
AM1
BM1
CM2

Cuando utilizo la segmentación, en lugar de calcular el número de casos sospechosos/confirmados de esa administración, se muestra el número completo de los días en los que se han actualizado los contratos de esa administración.

¿Cómo lo cambio?

Icey
Community Support
Community Support

Hola @BlackBird ,

Reemplace ALL() por ALLSELECTED() en las medidas.

Suspected Measure = 
VAR __Date =
    MAX ( 'Table'[LastUpdate] )
VAR __Table =
    ADDCOLUMNS (
        SUMMARIZE (
            FILTER ( ALLSELECTED ( 'Table' ), [LastUpdate] <= __Date ), ------changed
            [Contract],
            "LastDate", MAX ( 'Table'[LastUpdate] )
        ),
        "Suspected", COUNTROWS (
            FILTER (
                ALLSELECTED ( 'Table' ),                         --------------changed
                'Table'[Contract] = EARLIER ( [Contract] )
                    && [LastUpdate] = [LastDate]
                    && [Suspected] = "Yes"
            )
        )
    )
RETURN
    SUMX ( FILTER ( __Table, [LastDate] <= __Date ), [Suspected] ) + 0
Confirmed Measure =
VAR __Date =
    MAX ( 'Table'[LastUpdate] )
VAR __Table =
    ADDCOLUMNS (
        SUMMARIZE (
            FILTER ( ALLSELECTED ( 'Table' ), [LastUpdate] <= __Date ), --------changed
            [Contract],
            "LastDate", MAX ( 'Table'[LastUpdate] )
        ),
        "Confirmed", COUNTROWS (
            FILTER (
                ALLSELECTED ( 'Table' ),        --------------------------------changed
                'Table'[Contract] = EARLIER ( [Contract] )
                    && [LastUpdate] = [LastDate]
                    && [Confirmed] = "Yes"
            )
        )
    )
RETURN
    SUMX ( FILTER ( __Table, [LastDate] <= __Date ), [Confirmed] ) + 0

sus.gif

Saludos

Icey

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

Tendré que echar un vistazo, fue lo suficientemente complejo como para que se necesitara media hora para trabajar a través de él, así que tendré que agregar eso al modelo y ver lo que hay que hacer.

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors