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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Rollo 12 meses (a partir de Earliest_Use_date) + suma de valor

Hola

Me preguntaba si alguien puede ayudarme con una medida Dax para Rolling 12 meses para una estructura de plan de comisiones. A los representantes de ventas se les paga en función de los 12 meses de ingresos producidos por los clientes que comienzan en Earliest_use_date que terminan 11 meses después.

Aquí está la estructura

ClienteApproved_dateEarliest_Use_DateR12 meses Ingresos Cuota mensual antes de la activación
Maria_1232022-01-012022-05-05Ingresos generados a partir de= Start_Month Earliest_Use_Date + 11 mesesPagado solo si está activado
Jose_1242023-02-012023-05-15Ingresos generados a partir de= Start_Month Earliest_Use_Date + 11 mesesPagado solo si está activado
Carlos_2112021-07-102022-01-12Ingresos generados a partir de= Start_Month Earliest_Use_Date + 11 mesesPagado solo si está activado

Los totales para cada uno deben ser los siguientes

Clientela Total comisionable Notas
Maria_123413.00
Jose_12490.00Aún por calcular los ingresos para los meses de agosto de 2023 a abril de 2024
Carlos_211240.00



Archivo de ejemplo

ClienteFecha de ingresosIngresos totales R12 M IngresosCuota mensual antes de la activaciónComisión mensual
Maria_1232022-01-3110.00
Maria_1232022-02-2810.00
Maria_1232022-03-3110.00
Maria_1232022-04-3010.00
Maria_1232022-05-3130.0030.0040.0070.00
Maria_1232022-06-3032.0032.00 32.00
Maria_1232022-07-3135.0035.00 35.00
Maria_1232022-08-3136.0036.00 36.00
Maria_1232022-09-3030.0030.00 30.00
Maria_1232022-10-3130.0030.00 30.00
Maria_1232022-11-3030.0030.00 30.00
Maria_1232022-12-3130.0030.00 30.00
Maria_1232023-01-3130.0030.00 30.00
Maria_1232023-02-2830.0030.00 30.00
Maria_1232023-03-3130.0030.00 30.00
Maria_1232023-04-3030.0030.00 30.00
Maria_1232023-05-3130.00
Maria_1232023-06-3030.00
Maria_1232023-07-3130.00
Maria_1232023-08-3130.00
Jose_1242023-02-2810.00
Jose_1242023-03-3110.00
Jose_1242023-04-3010.00
Jose_1242023-05-3130.0020.0030.0050.00
Jose_1242023-06-3032.0020.00 20.00
Jose_1242023-07-3135.0020.00 20.00
Carlos_2112021-07-3110.00
Carlos_2112021-08-3110.00
Carlos_2112021-09-3010.00
Carlos_2112021-10-3110.00
Carlos_2112021-11-3010.00
Carlos_2112021-12-3110.00
Carlos_2112022-01-3115.0015.0060.0075.00
Carlos_2112022-02-2815.0015.00 15.00
Carlos_2112022-03-3115.0015.00 15.00
Carlos_2112022-04-3015.0015.00 15.00
Carlos_2112022-05-3115.0015.00 15.00
Carlos_2112022-06-3015.0015.00 15.00
Carlos_2112022-07-3115.0015.00 15.00
Carlos_2112022-08-3115.0015.00 15.00
Carlos_2112022-09-3015.0015.00 15.00
Carlos_2112022-10-3115.0015.00 15.00
Carlos_2112022-11-3015.0015.00 15.00
Carlos_2112022-12-3115.0015.00 15.00
Carlos_2112023-01-3115.00
Carlos_2112023-02-2815.00
Carlos_2112023-03-3115.00
Carlos_2112023-04-3015.00
Carlos_2112023-05-3115.00
Carlos_2112023-06-3015.00
Carlos_2112023-07-3115.00
12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

De nada.

Syndicate_Admin
Administrator
Administrator

Estoy muy agradecido por su trabajo, tiempo y generosidad. Muchas gracias. Eres un gran ser humano. ¡Funciona muy bien!

Syndicate_Admin
Administrator
Administrator

Hola

Se adjunta el archivo PBI.

Espero que esto ayude.

Untitled.png

Syndicate_Admin
Administrator
Administrator

Estos son mis resultados esperados:

2022 2023 2024
AccountManager_customer_number_NombreEneFebEstropearAprTotalMayoJunJulAgoSepOctNovDicEneFebEstropearAprTotalMayoJunTotal
Colin16217Carlos_21175151515120151515151515151515151515180
Franco23265Jose_124 502070
Jake28580Maria_123 703235363030303030303030413
Total general 75151515120854750514545454545454545593502070

Tabla original

MCosta_BI_5-1689903646271.png

Tabla con fórmulas a continuación

MCosta_BI_4-1689903589798.png

Necesito sumar los valores generados antes de earliest_date en el mes de activación.

MCosta_BI_1-1689902843045.png

Para que se vea así:

Este debería ser mi resultado final para todo el dolor de cabeza.

MCosta_BI_6-1689903728194.png

La tabla "Ingresos totales 12m rodando desde Earliest_Use_Date" utilicé estas dos fórmulas (como se mencionó anteriormente).

Rolling 12 using Activation_date ( commissionable) = 
VAR CurrentDate =
    Max('dCalendar (Revenue)'[Calendar Date])
VAR StartDate = CurrentDate - 365
RETURN
    CALCULATE (
       [Total Revenue],
        'dCalendar (EarliestUse)'[Calendar Date] > StartDate,
        'dCalendar (EarliestUse)'[Calendar Date] <= CurrentDate
    )
m_Rolling 12 months ( Activation) = 
VAR __table = SUMMARIZE('dCalendar (Revenue)',[Calendar Date],"__value",[Rolling 12 using Activation_date ( commissionable)])
RETURN
IF(HASONEVALUE('dCalendar (Revenue)'[Calendar Date]),[Total Revenue],SUMX(__table,[__value]))

Tabla de fechas

Parámetros:

Mes de inicio fiscal 05

Inicio Año 2019

dejar
 Fecha = dejar
Fuente = List.Dates,
FiscalMonthCalc = 12-#"Fiscal Start Month",
NumberofDays= Duration.Days(DateTime.Date(DateTime.FixedLocalNow())-#date(#"Año de inicio",1,1)),

 1. Descomente esta línea si desea que su fecha de finalización sea Fecha de hoy +1 día de la actualización
#"Invoked FunctionSource" = Source(#date(#"Año de inicio", 1, 1), NumberofDays+1, #duration(1, 0, 0, 0)),

 2. Descomente esta línea a continuación si desea que su fecha de finalización sea de 4 años en el futuro
#"Invoked FunctionSource" = Source(#date(#"Año de inicio", 1, 1), Duration.Days(DateTime.Date(Date.AddDays(Date.EndOfYear(Date.AddYears(DateTime.FixedLocalNow(),+0)),1)) - #date(#"Año de inicio",1,1)), #duration(1, 0, 0, 0)),

 3. Descomente esta línea si desea que su fecha de finalización sea el parámetro llamado "Año final"
#"Invoked FunctionSource" = Source(#date(#"Año de inicio", 1, 1), Duration.Days(#date(#"Año final", 12, 30) - #date(#"Año de inicio",1,1)), #duration(1, 0, 0, 0)),

#"Table from List" = Table.FromList(#"Invoked FunctionSource", Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Agregado índice" = Table.AddIndexColumn(#"Tabla de la lista", "Índice", 1, 1),
#"columnas renombradas" = Table.RenameColumns(#"Agregado índice",{{"Column1", "Fecha"}}),
#"Added Custom" = Table.AddColumn(#"Columnas renombradas", "Año", cada Date.Year([Date])),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Month Number", each Date.Month([Date])),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Day", each Date.Day([Date])),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Day Name", each Date.ToText([Date],"ddd")),
#"Added Custom4" = Table.AddColumn(#"Added Custom3", "Month Name", each Date.ToText([Date],"MMM")),
#"Columnas reordenadas" = Table.ReorderColumns(#"Added Custom4",{"Date", "Index", "Year", "Month Number", "Month Name", "Day", "Day Name"}),
#"Added Custom5" = Table.AddColumn(#"Reordenar columnas", "Número de trimestre", cada Date.QuarterOfYear([Date])),
#"Columna duplicada" = Table.DuplicateColumn(#"Agregado personalizado5", "Año", "Copia del año"),
#"Renamed Columns1" = Table.RenameColumns(#"Duplicad Column",{{"Copy of Year", "Short Year"}}),
#"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns1",{{"Short Year", type text}}),
#"Dividir columna por posición" = Table.SplitColumn(#"Tipo cambiado","Año corto",Splitter.SplitTextByRepeatedLengths(2),{"Año corto.1", "Año corto.2"}),
#"changed type1" = Table.TransformColumnTypes(#"Dividir columna por posición",{{"Short year.1", int64.type}, {"short year.2", int64.type}}),
#"Columnas eliminadas" = Table.RemoveColumns(#"Tipo cambiado1",{"Año corto.1"}),
#"Renamed Columns2" = Table.RenameColumns(#"Columnas eliminadas",{{"Año corto.2", "Año corto"}}),
#"Added Custom6" = Table.AddColumn(#"Renamed Columns2", "Quarter Year", each Number.ToText([Short Year]) & "Q" & Number.ToText([Quarter Number],"00")),
#"Columnas reordenadas1" = Table.ReorderColumns(#"Agregado personalizado6",{"Índice", "Fecha", "Día", "Nombre del día", "Número de mes", "Nombre del mes", "Número de trimestre", "Año trimestral", "Año corto", "Año"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Reordenado Columns1",{{"Date", type date}, {"Day", Int64.Type}, {"Index", Int64.Type}, {"Month Number", Int64.Type}, {"Quarter Number", Int64.Type}, {"Month Name", type text}, {"Quarter Year", type text}, {"Year", Int64.Type}}),
 #"Added Conditional Column" = Table.AddColumn(#"Changed Type2", "Fiscal Year", each if [Month Number] < #"Fiscal Start Month" then [Year] else [Year]+1 ),
 #"Added Conditional Column1" = Table.AddColumn(#"Added Conditional Column", "Fiscal Month", each if [Month Number] < #"Fiscal Start Month" then [Month Name] else [Month Name] ),
 #"Added Custom7" = Table.AddColumn(#"Added Conditional Column1", "Fiscal Month Sort Order", each Number.Mod(Date.Month([Date])+FiscalMonthCalc ,12)+1),
 #"Added Conditional Column3" = Table.AddColumn(#"Added Custom7", "Fiscal Quarter", each if [Fiscal Month Sort Order] >= 1 and [Fiscal Month Sort Order] <= 3 then "Q1"
 else if [Fiscal Month Sort Order] >= 4 y [Fiscal Month Sort Order] <= 6 then "Q2"
 else if [Fiscal Month Sort Order] >= 7 y [Fiscal Month Sort Order] <= 9 then "Q3"
 else if [Fiscal Month Sort Order] >= 10 y [Fiscal Month Sort Order] <= 12 then "Q4"
 else "Q Unknown" ),
#"Added Conditional Column4" = Table.AddColumn(#"Added Conditional Column3", "Fiscal Quarter Sort Number", each if [Fiscal Month Sort Order] >= 1 and [Fiscal Month Sort Order] <= 3 then "1"
 else if [Fiscal Month Sort Order] >= 4 y [Fiscal Month Sort Order] <= 6 then "2"
 else if [Fiscal Month Sort Order] >= 7 y [Fiscal Month Sort Order] <= 9 then "3"
 else if [Fiscal Month Sort Order] >= 10 y [Fiscal Month Sort Order] <= 12 then "4"
 else "Q Unknown" ),
 #"Changed Type3" = Table.TransformColumnTypes(#"Added Conditional Column4",{{"Fiscal Quarter Sort Number", Int64.Type}, {"Fiscal Month Sort Order", Int64.Type}, {"Fiscal Year", Int64.Type}}),
 #"Renamed Columns3" = Table.RenameColumns(#"Changed Type3",{{"Date", "Calendar Date"}, {"Month Number", "Calendar Month Number"}, {"Month Name", "Calendar Month Name"}, {"Quarter Number", "Calendar Quarter Number"}, {"Quarter Year", "Calendar Quarter Year"}, {"Short Year", "Calendar Short Year"}, {"Year", "Calendar Year"}})

en
 #"Columnas renombradas3"
en
    Fecha

MCosta_BI_7-1689903819088.png

MCosta_BI_8-1689903875696.png

Syndicate_Admin
Administrator
Administrator

Hola

En base a las 2 tablas que has compartido, muestra el resultado esperado muy claramente con una explicación.

Syndicate_Admin
Administrator
Administrator

Tabla de ingresos

customer_number_NombreFecha de ingresosIngresos totales
16217Maria_1232022-01-3110
16217Maria_1232022-02-2810
16217Maria_1232022-03-3110
16217Maria_1232022-04-3010
16217Maria_1232022-05-3130
16217Maria_1232022-06-3032
16217Maria_1232022-07-3135
16217Maria_1232022-08-3136
16217Maria_1232022-09-3030
16217Maria_1232022-10-3130
16217Maria_1232022-11-3030
16217Maria_1232022-12-3130
16217Maria_1232023-01-3130
16217Maria_1232023-02-2830
16217Maria_1232023-03-3130
16217Maria_1232023-04-3030
16217Maria_1232023-05-3130
16217Maria_1232023-06-3030
16217Maria_1232023-07-3130
16217Maria_1232023-08-3130
33588Jose_1242023-02-2810
33588Jose_1242023-03-3110
33588Jose_1242023-04-3010
33588Jose_1242023-05-3120
33588Jose_1242023-06-3020
33588Jose_1242023-07-3120
28580Carlos_2112021-07-3110
28580Carlos_2112021-08-3110
28580Carlos_2112021-09-3010
28580Carlos_2112021-10-3110
28580Carlos_2112021-11-3010
28580Carlos_2112021-12-3110
28580Carlos_2112022-01-3115
28580Carlos_2112022-02-2815
28580Carlos_2112022-03-3115
28580Carlos_2112022-04-3015
28580Carlos_2112022-05-3115
28580Carlos_2112022-06-3015
28580Carlos_2112022-07-3115
28580Carlos_2112022-08-3115
28580Carlos_2112022-09-3015
28580Carlos_2112022-10-3115
28580Carlos_2112022-11-3015
28580Carlos_2112022-12-3115
28580Carlos_2112023-01-3115
28580Carlos_2112023-02-2815
28580Carlos_2112023-03-3115
28580Carlos_2112023-04-3015
28580Carlos_2112023-05-3115
28580Carlos_2112023-06-3015
28580Carlos_2112023-07-3115
23265ABC232872022-04-3010
23265ABC232872022-05-3110
23265ABC232872022-06-3010
23265ABC232872022-07-3110
23265ABC232872022-08-3110
23265ABC232872022-09-3010
23265ABC232872022-10-3110
23265ABC232872022-11-3010
23265ABC232872022-12-3110
23265ABC232872023-01-3110
23265ABC232872023-02-2810
23265ABC232872023-03-3110
23265ABC232872023-04-3010
23265ABC232872023-05-3110
23265ABC232872023-06-3010

Tabla de clientes

customer_number_Nombre_Created_date_Approved_date_Earliest_UseServicios activadosAccountManager_
16217Maria_1232021-12-252022-01-012022-05-05Jake
33588Jose_1242022-04-282023-02-012023-05-15Franco
28580Carlos_2112021-06-192021-07-102022-01-12Colin
24359ABC243812022-04-202022-04-222022-06-16Colin
25476ABC254982022-01-092022-04-222022-07-14Jake
23265ABC232872022-03-022022-04-07 noLucia
Syndicate_Admin
Administrator
Administrator

Lo siento mucho @Ashish_Mathur . ¡Tienes razón! Debería haber sido más claro desde el principio.

Tabla de clientes

customer_number_Nombre_Created_date_Approved_date_Earliest_UseServicios activadosAccountManager_
16217Maria_1232021-12-252022-01-012022-05-05Jake
33588Jose_1242022-04-282023-02-012023-05-15Franco
28580Carlos_2112021-06-192021-07-102022-01-12Colin
24359ABC243812022-04-202022-04-222022-06-16Colin
25476ABC254982022-01-092022-04-222022-07-14Jake
23265ABC232872022-03-022022-04-07 noLucia

Tabla de transacciones

customer_number_NombreFecha de ingresosIngresos totales
16217Maria_1232022-01-3110.00
16217Maria_1232022-02-2810.00
16217Maria_1232022-03-3110.00
16217Maria_1232022-04-3010.00
16217Maria_1232022-05-3130.00
16217Maria_1232022-06-3032.00
16217Maria_1232022-07-3135.00
16217Maria_1232022-08-3136.00
16217Maria_1232022-09-3030.00
16217Maria_1232022-10-3130.00
16217Maria_1232022-11-3030.00
16217Maria_1232022-12-3130.00
16217Maria_1232023-01-3130.00
16217Maria_1232023-02-2830.00
16217Maria_1232023-03-3130.00
16217Maria_1232023-04-3030.00
16217Maria_1232023-05-3130.00
16217Maria_1232023-06-3030.00
16217Maria_1232023-07-3130.00
16217Maria_1232023-08-3130.00
33588Jose_1242023-02-2810.00
33588Jose_1242023-03-3110.00
33588Jose_1242023-04-3010.00
33588Jose_1242023-05-3120.00
33588Jose_1242023-06-3020.00
33588Jose_1242023-07-3120.00
28580Carlos_2112021-07-3110.00
28580Carlos_2112021-08-3110.00
28580Carlos_2112021-09-3010.00
28580Carlos_2112021-10-3110.00
28580Carlos_2112021-11-3010.00
28580Carlos_2112021-12-3110.00
28580Carlos_2112022-01-3115.00
28580Carlos_2112022-02-2815.00
28580Carlos_2112022-03-3115.00
28580Carlos_2112022-04-3015.00
28580Carlos_2112022-05-3115.00
28580Carlos_2112022-06-3015.00
28580Carlos_2112022-07-3115.00
28580Carlos_2112022-08-3115.00
28580Carlos_2112022-09-3015.00
28580Carlos_2112022-10-3115.00
28580Carlos_2112022-11-3015.00
28580Carlos_2112022-12-3115.00
28580Carlos_2112023-01-3115.00
28580Carlos_2112023-02-2815.00
28580Carlos_2112023-03-3115.00
28580Carlos_2112023-04-3015.00
28580Carlos_2112023-05-3115.00
28580Carlos_2112023-06-3015.00
28580Carlos_2112023-07-3115.00
23265ABC232872022-04-3010.00
23265ABC232872022-05-3110.00
23265ABC232872022-06-3010.00
23265ABC232872022-07-3110.00
23265ABC232872022-08-3110.00
23265ABC232872022-09-3010.00
23265ABC232872022-10-3110.00
23265ABC232872022-11-3010.00
23265ABC232872022-12-3110.00
23265ABC232872023-01-3110.00
23265ABC232872023-02-2810.00
23265ABC232872023-03-3110.00
23265ABC232872023-04-3010.00
23265ABC232872023-05-3110.00
23265ABC232872023-06-3010.00


Tengo cuatro fechas de calendario conectadas a cada fecha específica en mi tabla de clientes. Los uso para múltiples escenarios de informes.
para Crear fecha
para la fecha de aprobación
para la fecha de uso más temprana

para Ingresos

Utilicé estos dos DAX a continuación que calculan los 12 meses de ingresos continuos (la continuación comienza en la fecha de uso más temprana y cuenta 12 meses después)

** Este Dax me ayudó a lograr la suma mensual móvil correctamente, pero por alguna razón estaba omitiendo algunos valores para el total del año, así que creé el siguiente Dax para forzarlo a sumar todo.

Rolling 12 using Activation_date ( commissionable) = 
VAR CurrentDate =
    Max('dCalendar'[Date] )
VAR StartDate = CurrentDate - 365
RETURN
    CALCULATE (
       [Total Revenue excl.Setup (for_commission)],
        REMOVEFILTERS(  'dCalendar (EarliestUse)'[Date] ),
        'dCalendar (EarliestUse)'[Date] > StartDate,
        'dCalendar (EarliestUse)'[Date] <= CurrentDate
    )

Esto es calcular los valores correctos por mes y año.

m_Rolling 12 months ( Activation) = 
VAR __table = SUMMARIZE('dCalendar',[Date],"__value",[Rolling 12 using Activation_date ( commissionable)])
RETURN
IF(HASONEVALUE('dCalendar'[Date]),[Total Revenue excl.Setup (for_commission)],SUMX(__table,[__value]))

Así es como tengo datos mostrados por año fiscal y mes

MCosta_BI_0-1689866757304.png

El problema es que ahora la compañía quiere agregar los ingresos generados por los clientes antes de earliest_ use_date a la suma total tan pronto como se indique earliest_use_date y me estoy rompiendo la cabeza para lograrlo.

Si no puedes ayudar, lo entenderé. Si crees que hay luz en estos caminos oscuros, por favor comparte conmigo. Siempre seré grande.

Gracias

Múnich

Syndicate_Admin
Administrator
Administrator

Comparta los datos sin procesar (en un formato que se pueda pegar en un archivo de MS Excel) y esta vez revise su mensaje a fondo antes de publicarlo.

Syndicate_Admin
Administrator
Administrator

En mi tabla Cliente tengo las siguientes dos columnas: cliente, Earliest_Use_Date Approved_Date

Así que mi intención es utilizar estas fechas para calcular los 12 millones de ingresos + cuota mensual antes de la activación.

Los 12m rodantes:

Start_Date= el mes de Earliest_Use_Date

End_Date = 11 meses rodando después de Earliest_Use_Date

Cuota mensual antes de la activación:

Fecha de inicio = el mes de approved_date

End_Date = el mes de Earliest_Use_Date-1

Syndicate_Admin
Administrator
Administrator

De nada. Entonces, ¿cómo se sabe cuándo debe comenzar la acumulación de ingresos?

Syndicate_Admin
Administrator
Administrator

@Ashish_Mathur muchas gracias. Técnicamente no tengo la columna que resume la tarifa mensual antes de la activación. Lamento no haber sido claro en mi primer mensaje. Todo lo que tengo son las columnas Cliente, Fecha de ingresos e ingresos totales.

MCosta_BI_0-1689737938050.png

Syndicate_Admin
Administrator
Administrator

Hola

Se adjunta mi archivo de solución.

Espero que esto ayude.

Untitled.png

Helpful resources

Announcements
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.