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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Filtro condicional por importancia

Hola a todos


He buscado ayuda en este artículo y no he podido encontrar algo similar.


Lo que quiero hacer es poder ordenar desde una tabla un conjunto específico de filas según un conjunto de criterios mediante una medida. He compilado toda esta información en una sola tabla en BI. Como se puede ver en mi tabla de ejemplo a continuación, he aceptado y rechazado citas con sellos de fecha. Sólo quiero tomar una estimación en los últimos 6 meses. Si hay más que uno, quiero excluir a los demás de mi resultado final. Dentro de eso, sólo quiero tomar las estimaciones aceptadas como prioridad, y si todas son rechazadas, entonces tome el punto más reciente. El objetivo final realmente es tener sólo una estimación para cada número de coche en un plazo de 6 meses.

FechaACEPTADO/RECHAZADONÚMERO ESTIMADONúmero de cocheCANTIDAD $
1/2/2018Aceptado11445100
6/25/2018Aceptado12789150
1/29/2019Disminuido13122125
2/2/2019Disminuido14122105
7/10/2020Disminuido1544590
8/13/2020Aceptado16445100
9/3/2020Disminuido17445150

El resultado debería parecer algo así

FechaACEPTADO/RECHAZADONÚMERO ESTIMADONúmero de cocheCANTIDAD $
1/2/2018Aceptado11445100
6/25/2018Aceptado12789150
2/2/2019Disminuido14122105
9/3/2020Aceptado16445100

Gracias por la ayuda. Siéntase libre de hacer preguntas aclaratorias si es necesario.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola

¡Esta fue una buena! Por favor, vea a continuación cómo funciona. Puede seleccionar una fecha, que se utiliza para definir el período de tiempo de 6 meses. A continuación, buscará cotizaciones aceptadas, si no encuentra ninguna (carbonece), tomará la cotización rechazada más reciente. ¡Disfrutar!
Tenga en cuenta; la mesa de fechas no está relacionada!

2021-02-25_06-32-05.gif

El código DAX:

_Filter =
VAR _selCurrentDate =
    SELECTEDVALUE ( DateDim[Date] )
VAR _6monthprior =
    EDATE ( _selCurrentDate, -6 )
RETURN
    IF (
        NOT ( ISBLANK ( SUM ( 'Table'[AMOUNT $] ) ) ),
        COALESCE (
            CALCULATE (
                COUNT ( 'Table'[ACCEPTED/DECLINED] ),
                FILTER (
                    'Table',
                    [DATE].[Date] > _6monthprior
                        && [DATE].[Date] <= _selCurrentDate
                        && [ACCEPTED/DECLINED] = "ACCEPTED"
                )
            ),
            VAR _SELcar =
                SELECTEDVALUE ( 'Table'[Car Number] )
            VAR _MaxDateDeclined =
                CALCULATE (
                    MAX ( 'Table'[DATE].[Date] ),
                    FILTER (
                        ALL ( 'Table' ),
                        [Car Number] = _SELcar
                            && [DATE].[Date] > _6monthprior
                            && [DATE].[Date] <= _selCurrentDate
                            && [ACCEPTED/DECLINED] = "DECLINED"
                    )
                )
            RETURN
                CALCULATE (
                    COUNT ( 'Table'[ACCEPTED/DECLINED] ),
                    FILTER ( 'Table', [DATE].[Date] = _MaxDateDeclined && [Car Number] = _SELcar )
                )
        ),
        BLANK ()
    )

El archivo está adjunto.

Saludos amables, Steve.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola

¡Esta fue una buena! Por favor, vea a continuación cómo funciona. Puede seleccionar una fecha, que se utiliza para definir el período de tiempo de 6 meses. A continuación, buscará cotizaciones aceptadas, si no encuentra ninguna (carbonece), tomará la cotización rechazada más reciente. ¡Disfrutar!
Tenga en cuenta; la mesa de fechas no está relacionada!

2021-02-25_06-32-05.gif

El código DAX:

_Filter =
VAR _selCurrentDate =
    SELECTEDVALUE ( DateDim[Date] )
VAR _6monthprior =
    EDATE ( _selCurrentDate, -6 )
RETURN
    IF (
        NOT ( ISBLANK ( SUM ( 'Table'[AMOUNT $] ) ) ),
        COALESCE (
            CALCULATE (
                COUNT ( 'Table'[ACCEPTED/DECLINED] ),
                FILTER (
                    'Table',
                    [DATE].[Date] > _6monthprior
                        && [DATE].[Date] <= _selCurrentDate
                        && [ACCEPTED/DECLINED] = "ACCEPTED"
                )
            ),
            VAR _SELcar =
                SELECTEDVALUE ( 'Table'[Car Number] )
            VAR _MaxDateDeclined =
                CALCULATE (
                    MAX ( 'Table'[DATE].[Date] ),
                    FILTER (
                        ALL ( 'Table' ),
                        [Car Number] = _SELcar
                            && [DATE].[Date] > _6monthprior
                            && [DATE].[Date] <= _selCurrentDate
                            && [ACCEPTED/DECLINED] = "DECLINED"
                    )
                )
            RETURN
                CALCULATE (
                    COUNT ( 'Table'[ACCEPTED/DECLINED] ),
                    FILTER ( 'Table', [DATE].[Date] = _MaxDateDeclined && [Car Number] = _SELcar )
                )
        ),
        BLANK ()
    )

El archivo está adjunto.

Saludos amables, Steve.

@stevedep Muchas gracias por la ayuda. Estás en dirección a donde necesito que me dirija. Creo que los pequeños ajustes de voluntad a su esquema funcionarán para mí. Ni siquiera había pensado en romperlo con vars de citas. Eso realmente ayudó a ir línea por línea según sea necesario. Sé que fue un problema complejo, pero lo clavó. Gracias de nuevo.

¡Bienvenido! Disfruto de los problemas complejos más 🙂

Syndicate_Admin
Administrator
Administrator

Sus criterios son ambiguos para el coche 445. ¿Quieres ver todas las cotizaciones aceptadas o solo la más reciente?

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.