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

Contar y filtrar entre dos fechas

Hola

Tengo dos tablas, una con suscripciones actuales y otra con suscripciones caducadas vinculadas por memberID. Necesito comprobar desde las suscripciones actuales que se han renovado y no es un nuevo miembro. Para ello, quiero comprobar si hay suscripciones en la tabla Caducada, donde la fecha de finalización se encuentra entre la fecha de inicio de la suscripción actual: 1 día y -1 mes. A continuación, debo usar los resultados como parte de una tabla dinámica donde la fila será el tipo de suscripción y la columna será la fecha de inicio.

Este es un ejemplo de mi salida requerida

RenovacionesFecha de renovación
SeptiembreOctubre
TipoTotal renovadoElevación aplicadaTotal renovadoElevación aplicada
Coche
De
Motocicleta

A continuación se muestra mi consulta dax, pero sigo recibiendo "se proporcionó una tabla de varios valores donde se esperaba un solo valor"

Renovado ?
CALCULATE(COUNTROWS('CurrentSubscriptions'),
FILTER('ExpiredSubscriptions',
'ExpiredSubscriptions'[EndDate] <- DATEADD('CurrentSubscriptions'[StartDate].[ Fecha],-1,DIA)
&& 'ExpiredSubscriptions'[EndDate] >- DATEADD('CurrentSubscriptions'[StartDate].[ Fecha],-1,MES)
))
No estoy seguro de si lo que estoy haciendo es cerca de la manera correcta de manejar esto. ¿Alguien podría aconsejar?
Gracias
1 ACCEPTED SOLUTION
v-alq-msft
Community Support
Community Support

Hola, @nicole1995

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Suscripción actual:

c1.png

Suscripción caducada:

c2.png

Puede crear una medida como se indica a continuación.

Result = 
var t = 
ADDCOLUMNS(
    ALL('Current Subscriptions'),
    "Result",
    var _startdate = [StartDate]
    var _date = EOMONTH(_startdate,-1)
    var _d = DATE(YEAR(_date),MONTH(_date),DAY(_startdate))
    return
    COUNTROWS(
        FILTER(
            ALL('Expired Subscriptions'),
            [MemberID]=EARLIER('Current Subscriptions'[MemberID])&&
            [EndDate]>=_d&&
            [EndDate]<=_startdate-1
        )
    )
)
var _result =
SUMX(
    SUMMARIZE(
        'Current Subscriptions',
        'Current Subscriptions'[Type],
        'Current Subscriptions'[StartDate].[Month],
        "Re",
        SUMX(
            FILTER(
                t,
                [Type]=SELECTEDVALUE('Current Subscriptions'[Type])&&
                'Current Subscriptions'[StartDate].[Month]=EARLIER('Current Subscriptions'[StartDate].[Month])
            ),
            [Result]
        )
    ),
    [Re]
)
return
IF(
    ISBLANK(_result),
    0,
    _result
)

Resultado:

c3.png

Saludos

Allan

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

View solution in original post

6 REPLIES 6
v-alq-msft
Community Support
Community Support

Hola, @nicole1995

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Suscripción actual:

c1.png

Suscripción caducada:

c2.png

Puede crear una medida como se indica a continuación.

Result = 
var t = 
ADDCOLUMNS(
    ALL('Current Subscriptions'),
    "Result",
    var _startdate = [StartDate]
    var _date = EOMONTH(_startdate,-1)
    var _d = DATE(YEAR(_date),MONTH(_date),DAY(_startdate))
    return
    COUNTROWS(
        FILTER(
            ALL('Expired Subscriptions'),
            [MemberID]=EARLIER('Current Subscriptions'[MemberID])&&
            [EndDate]>=_d&&
            [EndDate]<=_startdate-1
        )
    )
)
var _result =
SUMX(
    SUMMARIZE(
        'Current Subscriptions',
        'Current Subscriptions'[Type],
        'Current Subscriptions'[StartDate].[Month],
        "Re",
        SUMX(
            FILTER(
                t,
                [Type]=SELECTEDVALUE('Current Subscriptions'[Type])&&
                'Current Subscriptions'[StartDate].[Month]=EARLIER('Current Subscriptions'[StartDate].[Month])
            ),
            [Result]
        )
    ),
    [Re]
)
return
IF(
    ISBLANK(_result),
    0,
    _result
)

Resultado:

c3.png

Saludos

Allan

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

Greg_Deckler
Super User
Super User

@nicole1995 - DATEADD devolverá una columna de valores. Tratar:

CALCULATE(
COUNTROWS('CurrentSubscriptions'),
FILTRO(
'ExpiredSubscriptions',
'ExpiredSubscriptions'[EndDate] <- ('CurrentSubscriptions'[StartDate].[ Fecha] -1) * 1.
&& 'ExpiredSubscriptions'[EndDate] >- EOMONT('CurrentSubscriptions'[StartDate].[ Fecha],-1)
))


@ 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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Hola @Greg_Deckler

Gracias por su respuesta rápida.

He probado la consulta, pero no me deja filtrar entre dos tablas. ¿Hay algo que me estoy perdiendo?

@nicole1995 - Oh, probablemente necesite un agregador alrededor de una referencia de columna (MAX, MIN, etc.) o MAXX(RELATEDTABLE(...) ...)


@ 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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
amitchandak
Super User
Super User

@nicole1995 , ¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.

Un enfoque en este blog debería ayudar

https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

Se une a dos fechas a la misma tabla de fechas. Aquí, en una fecha podemos tener -1

Hola @amitchandak

He creado algunos datos de muestra

nicole1995_0-1599570434209.png

Espero que esto tenga sentido

Gracias

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.