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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo contar filas hasta la fecha seleccionada por el usuario?

Hola a todos
Tengo una tabla llamada VENTAS que se parece a la siguiente:
date.JPG

También tengo una tabla de dimensiones de fecha llamada dimDate que agrupa las fechas por año y por trimestre, de la siguiente manera (he acortado la tabla para fines de ejemplo):

D_PBI_0-1653377890664.png


Existe una relación entre SALES[Sale Date] y dimDate[Date].
Es una segmentación de datos presente en la mesa donde el usuario puede seleccionar los trimestres de interés (es decir, los cuatro trimestres de 2000 Y / O solo el trimestre 3 de 2003). En la siguiente captura de pantalla, la agrupación se realiza por myFinancial Year, sin embargo, esto no debería hacer una diferencia en el resultado final que estoy buscando en la publicación:

D_PBI_1-1653378159286.png


Lo que necesito hacer es contar el número de ids de venta desde la fecha más temprana en la tabla de VENTAS hasta (e incluyendo) los trimestres que seleccionan los usuarios.
Por ejemplo...
En los datos ficticios de las capturas de pantalla anteriores, si el usuario selecciona los cuartos en la segmentación de datos visual, esperaría el siguiente resultado:

D_PBI_2-1653378471161.png

No me preocupa si el DAX necesario se crea a través de una CalculatedTable o una Measure (si es una medida, entonces traería los campos Year y Quarter de la tabla dimDate, junto con la Measure, en una sola tabla visual).

Espero haberlo explicado claramente. No debería ser demasiado problemático, pero no lo estoy haciendo bien.
Gracias de antemano.



6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola @rohit_singh, ¿sientes que esto es algo con lo que puedes ayudarme? Muchas gracias.

Syndicate_Admin
Administrator
Administrator

@D_PBI ,

Solo me gustaría una aclaración ya que estoy viendo alguna discrepancia entre los datos y la salida esperada.

Según sus datos de muestra, solo tiene 3 filas para el año 2000, con 2 identificaciones de venta en Q1 y 1 en Q3.

rohit_singh_0-1653379657161.png

Sin embargo, su resultado esperado tiene datos en los 4 trimestres para el año 2000

rohit_singh_1-1653379722957.png

¿Podría proporcionar un resultado esperado según los datos de la muestra?

Atentamente

Rohit


¡Aprecia sus felicitaciones! 😊

@rohit_singh Hola Rohit,
Según mis datos de ejemplo, si el usuario selecciona los trimestres 1, 2, 3, 4 para el año 2000 y también selecciona el trimestre 3 para el año 2003, el resultado debe ser:
Recuento del trimestre del año del ID de ventas
2000 1 2 (recuento de fechas 01/01/2000 y 10/01/2000)
2000 2 2 (recuento de fechas 01/01/2000 y 10/01/2000)
2000 3 3 (recuento de fechas 01/01/2000, 10/01/2000 y 01/08/2000)
2000 4 3 (recuento de fechas 01/01/2000, 10/01/2000 y 01/08/2000)
2003 3 8 (recuento de fechas 01/01/2000, 10/01/2000, 01/08/2000, 20/03/2001, 10/02/2002, 23/02/2002, 01/07/2002, 01/08/2003)

La suma para cada Trimestre seleccionado debe ser un total móvil (es decir, desde el inicio de todas las Fechas de Ventas hasta (e incluyendo) la última fecha del Trimestre seleccionado.

Espero que esto explique más las cosas. Gracias.

Hola @D_PBI ,

Gracias por la aclaración. Eso tiene mucho más sentido. Puede probar los pasos a continuación para ver si se adapta a sus necesidades:

1) Agregue las columnas Año y Trimestre a su tabla desde la tabla de fechas (Mi tabla de fechas se llama dim_date)

rohit_singh_0-1653388325958.png

Año = relacionado(dim_date[Año])
Trimestre = relacionado(dim_date[Trimestre])
2) Agregue una columna calculada para calcular el identificador de venta máximo para cada año y trimestre

ID de venta máximo =
CALCULAR(
MAX('Ventas trimestrales'[ID de venta]),
FILTER('Ventas trimestrales',
'Ventas trimestrales'[Año] = ANTERIOR('Ventas trimestrales'[Año]) && 'Ventas trimestrales'[Trimestre] = ANTERIOR('Ventas trimestrales'[Trimestre])
)
)

3) Agregue una columna calculada para calcular el número de filas para cada año y trimestre

Recuento de filas =
CUENTAS(
FILTER('Ventas trimestrales',
'Ventas trimestrales'[Año] = ANTERIOR('Ventas trimestrales'[Año]) && 'Ventas trimestrales'[Trimestre] = ANTERIOR('Ventas trimestrales'[Trimestre])
)
)

4) Agregue una columna calculada para calcular trimestralmente para cada año y trimestre, y asigne este valor solo a la identificación de venta máxima.

Total trimestral =

if ('Ventas trimestrales'[ID de venta] = 'Ventas trimestrales'[Id. de venta máxima],
CALCULAR(
MAX('Ventas trimestrales'[Recuento de filas]),
FILTER('Ventas trimestrales', 'Ventas trimestrales'[Año] = ANTERIOR('Ventas trimestrales'[Año]) && 'Ventas trimestrales'[Trimestre] = ANTERIOR('Ventas trimestrales'[Trimestre])))
, 0)

Su tabla ahora se verá así:
rohit_singh_1-1653388661808.png

5) A continuación, debe crear una tabla calculada utilizando su tabla de fechas para que pueda mostrar todos los trimestres.

Ventas resumidas =

RESUMIR(
dim_date,
dim_date[Año],
dim_date[Trimestre],
"Year-Qtr", dim_date[Año] * 100 + dim_date[Trimestre],
"Num Sales",, if (isblank(sum('Quarterly Sales'[Row Count])), 0 , sum('Quarterly Sales'[Row Count]))
)

6) Calcular el rango de ventas por mes-trimestre

Rango de ventas =
RANKX(
'Ventas resumidas',
'Ventas resumidas'[Año-Qtr],
,
ASC,
Denso
)

7) Finalmente, calcule las ventas en ejecución

Ventas en ejecución =

var _rank = 'Ventas resumidas'[Rango de ventas]

var _sum = CALCULATE(SUM('Ventas resumidas'[Ventas numéricas]), FILTER('Ventas resumidas', 'Ventas resumidas'[Rango de ventas] <= _rank))

var _curr = 'Ventas resumidas'[Num Sales]

devolución
_sum
rohit_singh_3-1653389004541.png


Esto le dará el resultado final
rohit_singh_2-1653388945739.png

Atentamente

Rohit


Marque esta respuesta como la solución si resuelve su problema.
¡Aprecia sus felicitaciones! 😊

Gracias @rohit_singh me has ayudado a grealty. Realmente lo aprecio.
Tengo otra petición de ayuda. Es similar a la idea con la que ya me has ayudado, pero hay una ligera diferencia.
Ya me has mostrado cómo contar los ID de venta (acumulativo y trimestral), pero estos ID de venta eran únicos. No habría duplicados en la columna ID de venta, independientemente de las fechas de venta.

Ahora necesito contar los Clientes acumulativamente (es decir, desde el principio del tiempo hasta e incluyendo ese trimestre) e individualmente por trimestre. La ligera diferencia aquí es que el ID de cliente aparece más de una vez en la columna ID de cliente. Tratando de reutilizar el código que ya ha proporcionado, estaba tratando de encontrar una manera de desduplicar los ID de cliente, ¿puede ayudarme a hacer esto, por favor?

Por ejemplo, aquí está mi tabla de clientes inicial:

D_PBI_1-1653648416918.png

Mi resultado final debería ser:

D_PBI_2-1653648443607.png


Solo con el ejemplo de Sale, habrá una tabla dimDate separada que el usuario puede filtrar el año y el trimestre. Sin embargo, en función de la tabla de cliente inicial, verá que el ID de cliente se cuenta SOLO una vez para la columna acumulativa y se cuenta SOLO para la columna trimestral.
Para dar un desglose adicional de lo que estoy buscando:- El Q4 de Y2004 tiene id de cliente 333 dos veces, no se cuenta en la columna acumulativa ya que el ID de cliente 333 se cuenta en Y2000 Q3. Además, el ID de cliente 333 solo se cuenta una vez en la columna Trimestre para Y2004 Q4, incluso si aparece dos veces, esto se debe a que estamos buscando contar solo los ID de cliente distintos.

Espero que esto tenga sentido. ¿Eres capaz de ayudarme, por favor? Gracias.

@rohit_singh

Esta es solo una respuesta de cortesía para decir "gracias" por sus esfuerzos. Lo estoy implementando ahora y lo probaré. Volveré con la conclusión, en breve.

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!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors