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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

contar filas basadas en varias fechas

He pasado mucho tiempo tratando de resolver esto y he leído muchas preguntas similares, pero no he logrado resolver esto, aunque parece sencillo.

Tengo datos de "cliente" como este, con columnas startdate y stopdate:

clientefecha de iniciostopdate
as101/01/201723/08/2020
fg315/11/201805/03/2021
ty714/05/202023/02/2022
ty706/10/201915/07/2022
az101/01/2012023/08/2022
df315/11/201805/03/2019
a714/05/201923/02/2021

Mi objetivo es contar la cantidad de clientes activos el 1er día de cada mes y luego trazarlo para crear un resultado como el siguiente (y tener el resultado filtrable, ya que mis datos reales tienen columnas adicionales y una rebanadora). Mi definición para activo es: startdate <= mth_start_date < stopdate.

grindle_0-1650982816932.png

He construido una tabla de fechas llamada "first_of_mth" que he creado una relación con el cliente[startdate]. first_of_mth tiene datos como este (pero que se ejecutan hasta la fecha actual):

mth_start_date
01/01/2017
01/02/2017
01/03/2017
01/04/2017
01/05/2017
01/06/2017
01/07/2017
01/08/2017
01/09/2017

Lo más cerca que he estado de lograr lo que quiero con DAX es:

Activo =

CALCULAR (

COUNTROWS ( cliente ),

FILTRO (

Prod

max(first_of_mth[mth_start_date]) >= cliente[fecha de inicio]

&& max(first_of_mth[mth_start_date]) <= cliente[stopdate]

)

)

Pero lo que esto hace es contar el número de filas donde startdate = mth_start_date.

Tengo la impresión de que necesito hacer algo con ambas relaciones entre las tablas y DAX para que esto funcione. Gracias.

1 ACCEPTED SOLUTION
5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola @grindle ,

Ve a tu mesa first_of_mth y cuenta cada mes nbr cliente activo desde aquí:

nbr_custo = CALCULAR(CONTAR(datasource[cliente]),
FILTRO(todo(fuente de datos),
datasource[fecha de inicio].[Fecha] <= fuente de datos[mth_start_date].[Fecha]
&&
datasource[stopdate].[Fecha] > fuente de datos[mth_start_date].[Fecha]))


Saludos

@philouduv - gracias por su respuesta. He probado 2 variaciones de tu sugerencia. Ambos mensajes de error generados - ver a continuación. ¿Puedes detectar lo que está mal?

nbr_custo = CALCULAR(CONTAR(cliente[cliente]),

FILTRO (todo (prod),

customer[startdate] <= first_of_mth[mth_start_date]

&&

customer[stopdate] > first_of_mth[mth_start_date]))

Mensaje de error: No se puede determinar un solo valor para la columna 'mth_start_date' en la tabla 'first_of_mth'...

nbr_custo = CALCULAR(CONTAR(cliente[cliente]),

FILTER(all(cliente),

cliente[fecha de inicio]. [Fecha] <= first_of_mth[mth_start_date]. [Fecha]

&&

cliente[stopdate]. [Fecha] > first_of_mth[mth_start_date]. [Fecha]))

Mensaje de error: La referencia de columna a 'startdate' en la tabla 'customer' no se puede usar con una variación 'Date' porque no tiene ninguna.

Hola @grindle,

En primer lugar, asegúrese de que su tabla con fecha tenga el formato correcto (el segundo punto de error este en la tabla cliente)

Tome de nuevo su primera fórmula, pero asegúrese de crear una columna en la tabla "first_of_mth"

nbr_custo = CALCULAR(CONTAR(cliente[cliente]),

FILTER(all(cliente),

cliente[fecha de inicio]. [Fecha] <= first_of_mth[mth_start_date]. [Fecha]

&&

cliente[stopdate]. [Fecha] > first_of_mth[mth_start_date]. [Fecha]))


El .[ Fecha] solo está disponible si tiene el formato bueno (Fecha)

Saludos

Gracias por este amitchandak - su primera publicación de blog hizo lo que quería. Muy servicial! Me mostró que necesitaba 2 relaciones inactivas y luego mi DAX funcionó 🙂

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

November Carousel

Fabric Community Update - November 2024

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

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

Top Solution Authors
Top Kudoed Authors