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
Anonymous
Not applicable

Calcular el total mensual entre dos fechas

Recibimos el pago de los clientes de forma recurrente durante la duración de un contrato. No tengo una tabla Date asociada a la tabla de hechos. ¿Hay alguna manera de calcular la revenenue mensual para que sea visible por Año y Mes? Tenemos una medida construida y podemos ver por YearMonth pero no es plegable a sólo año.

¿Es más fácil importar la fecha de cierre del contrato y conectar una tabla de fechas a esa columna?

Debajo de publiqué una tabla de origen de muestra y una salida de matriz de muestra.

Mesa

Ventas #NombreValor del contratoFecha de inicioFecha de finalizaciónRev Monthly Estado
3046906Cust 1$164,1327/01/20206/30/2021$13,678Activo
3062669Cust 2$4262628/01/20187/31/2020$7,104Activo

Mes y año de salida:

ClienteNúmero de ventasProyecto20 de junio20 de julio20 de agosto20 de sep20 de octubre20 de noviembreetcetera
13046906x $13,678$13,678$13,678$13,678$13,678...
23062669x$7,104$7,104 ...

Año de salida:

ClienteNúmero de ventasProyecto201820192020etcetera
13046906x $82,068...
23062669x$35,520$85,248$49,728...
1 ACCEPTED SOLUTION
dedelman_clng
Community Champion
Community Champion

Hola @elgel

Desea una tabla de fechas, pero como no tiene una tabla de transacciones per se (solo muestra los ingresos mensuales como un "componente" del contrato), podemos crear una tabla de transacciones que luego puede obtener la salida que busca.

1) Crear la tabla de fechas (CALENDARAUTO() funciona bien). Incluya al menos Mes y Año como columnas.

2) Crear una tabla de "transacción" utilizando CROSSJOIN (también pondremos en las restricciones aquí de asegurarse de que las entradas de ingresos están entre la fecha de inicio y finalización)

MonthlyRev =
FILTER (
    CROSSJOIN (
        FILTER ( DateTab, DAY ( DateTab[Date] ) = 1 ),
        SUMMARIZE (
            Contract,
            Contract[Sales #],
            Contract[Name],
            Contract[Rev Monthly ],
            Contract[Start Date],
            Contract[End Date]
        )
    ),
    [Date] >= [Start Date]
        && [Date] < [End Date]
)

3) Haga la matriz con Año, Mes como las columnas, Nombre como las filas, Rev Mensual como los valores

Paquete acumulativo anual:

2020-08-13 17_06_31-N_and_BASE_problem (3) - Power BI Desktop.png

Profundice hasta el mes:

2020-08-13 17_07_00-N_and_BASE_problem (3) - Power BI Desktop.png

Espero que esto ayude

David

View solution in original post

3 REPLIES 3
dedelman_clng
Community Champion
Community Champion

Hola @elgel

Desea una tabla de fechas, pero como no tiene una tabla de transacciones per se (solo muestra los ingresos mensuales como un "componente" del contrato), podemos crear una tabla de transacciones que luego puede obtener la salida que busca.

1) Crear la tabla de fechas (CALENDARAUTO() funciona bien). Incluya al menos Mes y Año como columnas.

2) Crear una tabla de "transacción" utilizando CROSSJOIN (también pondremos en las restricciones aquí de asegurarse de que las entradas de ingresos están entre la fecha de inicio y finalización)

MonthlyRev =
FILTER (
    CROSSJOIN (
        FILTER ( DateTab, DAY ( DateTab[Date] ) = 1 ),
        SUMMARIZE (
            Contract,
            Contract[Sales #],
            Contract[Name],
            Contract[Rev Monthly ],
            Contract[Start Date],
            Contract[End Date]
        )
    ),
    [Date] >= [Start Date]
        && [Date] < [End Date]
)

3) Haga la matriz con Año, Mes como las columnas, Nombre como las filas, Rev Mensual como los valores

Paquete acumulativo anual:

2020-08-13 17_06_31-N_and_BASE_problem (3) - Power BI Desktop.png

Profundice hasta el mes:

2020-08-13 17_07_00-N_and_BASE_problem (3) - Power BI Desktop.png

Espero que esto ayude

David

@elgel

Estaba pensando en esto por la noche porque quería encontrar una solución usando un measre y pude llegar allí. Sé @dedelman_clng fue capaz de resolverlo con una mesa, pero quería ofrecer esto también para que pudiera verlo.

Monthly Rev Measure = 
    CALCULATE (
        SUMX ( VALUES ( Dates[Month Year] ),
            VAR _FirstDate = FIRSTDATE ( Dates[Date] )
            VAR _LastDate = LASTDATE ( Dates[Date] ) 
            RETURN
            CALCULATE (
                SUM( Contracts[Rev Monthly] ),
                Contracts[Start Date] <= _LastDate,
                Contracts[End Date] >= _FirstDate
            )
        )
    )

jdbuchanan71_0-1597415312972.png

Anonymous
Not applicable

@dedelman_clng Esto es exactamente lo que necesitaba, gracias señor. Funcionó como un encanto.

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.