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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply

Lógica y fechas de Count DAX con visión de futuro

Estoy trabajando con un conjunto de datos de viaje que tiene esencialmente 3 columnas como se muestra a continuación.

CreadoSalida inicialTripNum
6-15-206-25-201
6-16-206-26-202

Me gustaría crear una tabla para los recuentos de viajes para los próximos 15, 30 y 45 días. Puedo hacerlo fácilmente en tiempo real. Sin embargo, estoy buscando tener datos históricos para trazar en un gráfico de líneas. Para ello necesito excluir todos los viajes que sean mayores que la fecha actual en el contexto de fecha dada en función de la fecha de creación del viaje. La siguiente tabla es lo que estoy buscando para crear.

FechaRecuento de excursiones de 15 díasRecuento de excursiones de 30 díasRecuento de excursiones de 45 días
6-1-20

10

2025
6-2-20

11

2529
6-3-20

15

3135
6-4-201424

42

Realmente estoy luchando con la lógica DAX en este tema. Para el contexto, he creado una tabla de fechas relacionada con la fecha de salida inicial.

Gracias

Peter

1 ACCEPTED SOLUTION

Rena

Me faltaba la lógica && para que el filtro funcionara correctamente. Gracias por su ayuda con esta pregunta.

Un cambio adicional que necesitaba hacer era agregar lo siguiente:

Trip Count =
VAR _days = 15
RETURN
    CALCULATE (
        DISTINCTCOUNT ( 'Trip'[TripNum] ),
        FILTER (
            ALL ( 'Trip' ),
            'Trip'[Created Date] <= MAX ( 'Date'[Date] )
   -------->    && 'Trip'[Trip Date] >= Max ( 'Date'[Date])
                && 'Trip'[Trip Date] > 'Trip'[Created Date]
                && 'Trip'[Trip Date]
                    <= MAX ( 'Date'[Date] ) + _days
        )
    )
Esto elimina todos los viajes que ya se han producido. De lo contrario, obtengo un recuento de viajes acumulativo.
Gracias de nuevo
-Pedro

View solution in original post

7 REPLIES 7
v-yiruan-msft
Community Support
Community Support

Hola @PeterBlatchley ,

Intente crear una medida como se muestra a continuación y agregue Pronóstico en el panel Análisis, compruebe más adelante si puede lograr su requisito:

Trip Count =
CALCULATE (
    DISTINCTCOUNT ( 'Trip'[TripNum] ),
    FILTER (
        ALL ( 'Trip' ),
        'Trip'[Created] <= MAX ( 'Date'[Date] )
            && 'Trip'[Initial Depart] = MAX ( 'Date'[Date] )
    )
)

forecast.JPG

Pronóstico en Power BI

Aplicar previsión

Si no es aplicable para su escenario, proporcione más datos de ejemplo y el resultado esperado (incluya la lógica de caculación por recuento y ejemplos). ¿Desea pronosticar el recuento de viajes en los próximos 45 días u obtener el recuento de viajes en el pasado?

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Do desea pronosticar el recuento de viajes en los próximos 45 días o obtener el recuento de viajes en el pasado?


Hola Rena,

Gracias por la respuesta. Como mencionaste, estoy buscando el recuento de viajes en el pasado.

  • Para cada fecha
    • contar los viajes para los próximos 15, 30 y 45 días
    • en el contexto del viaje fue creado en o antes de la fecha

Gracias

Peter

Hola @PeterBlatchley ,

No estoy seguro de si entiendo correctamente sus necesidades. Por ejemplo, si los datos actuales en el gráfico están en 2020/8/20, entonces desea obtener el recuento de viajes en 2020/8/20, 2020/8/5, 2020/7/21 y 2020/7/6? ¿Puedo saber si la tabla existe los datos con fecha antigua?

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Rena

Tal vez visual es un mejor ejemplo. En este ejemplo, solo obtendré recuentos de viajes de 15 días.

Aquí tengo mi tabla de entrada con Trip, la fecha en que se creó el viaje y la fecha en que se llevará a cabo el viaje.

En el medio, tengo las tablas virtuales que necesito para cada fecha para hacer mis cálculos. Los valores rojos se excluyen porque no están en los criterios de fecha de 15 días o ya han tenido lugar.

La tabla resultante muestra los recuentos de fecha y 15 días de viaje en función de mi tabla virtual intermedia.

Trip Count Example 15day.png

Espero que esto ayude a explicar mi problema.

Gracias de nuevo por su ayuda.

-Pedro

Hola @PeterBlatchley ,

En primer lugar, cree una tabla Date. A continuación, cree una medida como se muestra a continuación, coloque el campo de fecha en la tabla Fecha en el eje X de visual...

Trip Count =
VAR _days = 15
RETURN
    CALCULATE (
        DISTINCTCOUNT ( 'Trip'[TripNum] ),
        FILTER (
            ALL ( 'Trip' ),
            'Trip'[Created Date] <= MAX ( 'Date'[Date] )
                && 'Trip'[Trip Date] > 'Trip'[Created Date]
                && 'Trip'[Trip Date]
                    <= MAX ( 'Date'[Date] ) + _days
        )
    )

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Rena

Me faltaba la lógica && para que el filtro funcionara correctamente. Gracias por su ayuda con esta pregunta.

Un cambio adicional que necesitaba hacer era agregar lo siguiente:

Trip Count =
VAR _days = 15
RETURN
    CALCULATE (
        DISTINCTCOUNT ( 'Trip'[TripNum] ),
        FILTER (
            ALL ( 'Trip' ),
            'Trip'[Created Date] <= MAX ( 'Date'[Date] )
   -------->    && 'Trip'[Trip Date] >= Max ( 'Date'[Date])
                && 'Trip'[Trip Date] > 'Trip'[Created Date]
                && 'Trip'[Trip Date]
                    <= MAX ( 'Date'[Date] ) + _days
        )
    )
Esto elimina todos los viajes que ya se han producido. De lo contrario, obtengo un recuento de viajes acumulativo.
Gracias de nuevo
-Pedro
amitchandak
Super User
Super User

@PeterBlatchley, no muy claro. pero puede crear fórmulas como estas con una tabla de fechas

Rolling 15 day á CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],MAX(Sales[Sales Date]),15,Day))

Rolling 30 day ? CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],MAX(Sales[Sales Date]),30,Day))

Rolling 45 day á CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],MAX(Sales[Sales Date]),45,Day))

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únase a ella con la columna de fecha de su/s hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Vea si mi seminario web sobre Time Intelligence puede ayudar: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...


Apreciamos tus Felicitaciones.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors