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

Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.

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)
))



Follow on LinkedIn
@ 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!:
Power BI Cookbook Third Edition (Color)

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(...) ...)



Follow on LinkedIn
@ 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!:
Power BI Cookbook Third Edition (Color)

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

Full Power BI Video 20 Hours YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Hola @amitchandak

He creado algunos datos de muestra

nicole1995_0-1599570434209.png

Espero que esto tenga sentido

Gracias

Helpful resources

Announcements
May PBI 25 Carousel

Power BI Monthly Update - May 2025

Check out the May 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

May 2025 Monthly Update

Fabric Community Update - May 2025

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

Top Solution Authors
Top Kudoed Authors