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.
Hola
Estoy tratando de CALCULATETABLE (muestra a continuación) para iterar a través de la FIRSTDATE (START_DATE) y LASTDATE (END_DATE) y línea recta REVENUE y LABOR durante cada período mensual para que pueda vincular los datos del proyecto propuestos a los datos reales mensuales a una tabla de dimensiones de fecha.
DATOS PROPUESTOS DEL PROYECTO
PROJ_ID START_DATE END_DATE LABOR DE INGRESOS
11111 8/15/2020 8/14/2021 1,000,000 750,000
11111 8/15/2021 8/14/2022 1,000,000 750,000
11112 8/15/2020 8/14/2021 1,000,000 750,000
11113 8/15/2020 8/14/2021 1,000,000 750,000
Te lo agradezco en avanzado.
Solved! Go to Solution.
Hola @walkerb32
Construyo una tabla como la tuya y agredo una columna calculada.
Rev & Labor =
VAR baseTable =
DISTINCT ( ( 'Post Award Tracking v2'[Project Code] ) )
RETURN
GENERATE (
baseTable,
VAR PoP_Start =
MIN ( 'Post Award Tracking v2'[POP Start] )
VAR PoP_End =
MAX ( 'Post Award Tracking v2'[POP End] )
VAR MonthDiff =
DATEDIFF ( PoP_Start, PoP_End, MONTH )
VAR Avg_Rev =
DIVIDE (
CALCULATE ( SUM ( 'Post Award Tracking v2'[Revenue_TEST] ) ),
MonthDiff
)
VAR Revenue =
CALCULATE ( SUM ( 'Post Award Tracking v2'[Revenue_TEST] ) )
VAR Avg_LABOR =
DIVIDE ( CALCULATE ( SUM ( 'Post Award Tracking v2'[Labor_TEST] ) ), MonthDiff )
VAR Labor =
CALCULATE ( SUM ( 'Post Award Tracking v2'[Labor_TEST] ) )
RETURN
GENERATE (
GENERATESERIES ( PoP_Start, PoP_End, 1 ),
VAR inc = [Value]
VAR _Month =
MONTH ( [Value] )
RETURN
ROW (
"PoP Start", PoP_Start,
"PoP End", PoP_End,
"Months", MonthDiff,
"Avg Rev", Avg_Rev,
"Revenue", Revenue,
"Avg Labor", Avg_LABOR,
"Labor", Labor,
"Month", _Month
)
)
)
Min each month date =
IF (
AND (
MONTH ( 'Rev & Labor'[Value] ) = MONTH ( 'Rev & Labor'[PoP Start] ),
YEAR ( 'Rev & Labor'[Value] ) = YEAR ( 'Rev & Labor'[PoP Start] )
),
'Rev & Labor'[PoP Start],
CALCULATE (
MIN ( 'Rev & Labor'[Value] ),
FILTER (
'Rev & Labor',
'Rev & Labor'[Month] = EARLIER ( 'Rev & Labor'[Month] )
&& YEAR ( 'Rev & Labor'[Value] ) = EARLIER ( 'Rev & Labor'[Value].[Year] )
)
) + 20
)
Cree un objeto visual de tabla para mostrar el resultado:
Puede descargar el archivo pbix desde este enlace: CALCULATETABLE para iterar ingresos y gastos a lo largo de los períodos mensuales mediante fechas d...
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @walkerb32
¿Podría decirme si su problema ha sido resuelto? Si es así, acédi es la solución. Más gente se beneficiará de ello. O todavía está confundido al respecto, por favor proporcione más detalles sobre su tabla y su problema o compártame con su archivo pbix de su Onedrive for Business.
Saludos
Rico Zhou
@RicoZhou Gracias y está MUY cerca.
Un último elemento: en el ejemplo que proporcionó (que es impresionante, BTW) cada proyecto recorre en iteración las fechas de inicio y finalización de MIN y MAX Period of Performance (POP) Sart y POP End Dates en lugar de las fechas de inicio y finalización individuales de los proyectos. ¿Hay alguna manera de calcular la tabla según la fecha de inicio y finalización de cada proyecto?
Por ejemplo, el proyecto 25011 solo debe tener 6 partidas individuales:
Código de proyecto POP Iniciar POP Fin Número de líneas a Ingresos Promedios y Trabajo
11139 10/1/2014 9/30/2015 11
15147 7/21/2014 7/21/2015 12
15160 2/28/2015 2/15/2016 12
19031 2/16/2015 2/15/2016 12
19032 3/9/2015 3/8/2016 12
24005 7/1/2015 6/30/2016 11
25011 5/1/2015 11/30/2015 6
36007 5/1/2015 9/30/2016 16
¡Agradezco toda la ayuda!
Brad
@Ashish_Mathur @RicoZhou @AntrikshSharma
Utilizando el proyecto 11113 como ejemplo, los resultados serían:
PROJECT_ID LABOR DE INGRESOS DE PERIODO
11113 9/18/2018 83,333 62,500
11113 10/18/2018 83,333 62,500
11113 11/17/2018 83,333 62,500
11113 12/17/2018 83,333 62,500
11113 1/16/2019 83,333 62,500
11113 2/15/2019 83,333 62,500
11113 3/17/2019 83,333 62,500
11113 4/16/2019 83,333 62,500
11113 5/16/2019 83,333 62,500
11113 6/15/2019 83,333 62,500
11113 7/15/2019 83,333 62,500
11113 8/14/2019 83,333 62,500
¡Espero que esto ayude!
Hola @walkerb32
Construyo una mesa como la tuya para hacerme una prueba.
Cree un período para la tabla 11111.
Period for 11111 =
GENERATE (
GENERATESERIES ( 1, 23 ),
VAR inc = [Value]
RETURN
ROW ( "ID", "11111", "Period", DATE ( 2020, 07 + inc, 18 ) + 31 )
)
Construir dos medidas:
REVENUE =
VAR _Re =
CALCULATE (
SUM ( 'PROPOSED PROJECT DATA'[REVENUE] ),
FILTER (
'PROPOSED PROJECT DATA',
'PROPOSED PROJECT DATA'[START_DATE] <= MAX ( 'Period for 11111'[Period] )
&& 'PROPOSED PROJECT DATA'[END_DATE] >= MAX ( 'Period for 11111'[Period] )
&& 'PROPOSED PROJECT DATA'[PROJ_ID] = MAX ( 'Period for 11111'[ID] )
)
)
RETURN
DIVIDE ( _Re, 12 )
LABOR =
VAR _LA =
CALCULATE (
SUM ( 'PROPOSED PROJECT DATA'[LABOR] ),
FILTER (
'PROPOSED PROJECT DATA',
'PROPOSED PROJECT DATA'[START_DATE] <= MAX ( 'Period for 11111'[Period] )
&& 'PROPOSED PROJECT DATA'[END_DATE] >= MAX ( 'Period for 11111'[Period] )
&& 'PROPOSED PROJECT DATA'[PROJ_ID] = MAX ( 'Period for 11111'[ID] )
)
)
RETURN
DIVIDE ( _LA, 12 )
Resultado:
Puede descargar el archivo pbix desde este enlace: CALCULATETABLE para iterar ingresos y gastos a lo largo de los períodos mensuales utilizando la fec...
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@RicoZhou ¡Estoy cerca! El siguiente código se salta un mes. Debería iterar durante un período de 60 meses, pero estoy recibiendo 31. ¡Los ingresos medios sobre la tabla equivalen a los ingresos totales! Has sido una gran ayuda/inspiración. Toda su ayuda ha sido muy apreciada.
CERRAR ?
Var baseTable (Var baseTable) ( VAR baseTable)
DISTINCT( ( 'Seguimiento posterior a la adjudicación v2'[Código de proyecto] ) )
devolución
GENERAR (
baseTable,
VAR PoP_Start á [PoP_Start] //MIN
VAR PoP_End á [PoP_End] //MAX
Meses de VAR ?
DATEDIFF ( PoP_Start, PoP_End, MES ) -- número de meses de cálculo para el proyecto
SER Months_Offset ?
DATEDIFF (PoP_Start, PoP_End, MES ) - no funcionó
VAR Avg_Rev ?
DIVIDE ( CALCULATE ( SUM ( 'Seguimiento posterior a la adjudicación v2'[Ingresos] ) ), Meses )
Ingresos del VAR ( VAR Revenue)
CALCULAR ( SUM ( 'Seguimiento posterior a la adjudicación v2'[Ingresos] ) )
devolución
GENERAR (
GENERATESERIES ( PoP_Start, PoP_End,Months ), -- esta es la parte con la que estoy teniendo problemas, saltándose un mes
VAR inc á [Valor]
devolución
ROW (
"Proj_ID", baseTable,
"PoP Start", PoP_Start,
"PoP End", PoP_End,
"Meses", Meses,
"Avg Rev", Avg_Rev,
"Ingresos", Ingresos
)
)
)
Resultado:
(no se puede averiguar cómo agregar imágenes :()
Hola @walkerb32
Construyo una tabla como la tuya y agredo una columna calculada.
Rev & Labor =
VAR baseTable =
DISTINCT ( ( 'Post Award Tracking v2'[Project Code] ) )
RETURN
GENERATE (
baseTable,
VAR PoP_Start =
MIN ( 'Post Award Tracking v2'[POP Start] )
VAR PoP_End =
MAX ( 'Post Award Tracking v2'[POP End] )
VAR MonthDiff =
DATEDIFF ( PoP_Start, PoP_End, MONTH )
VAR Avg_Rev =
DIVIDE (
CALCULATE ( SUM ( 'Post Award Tracking v2'[Revenue_TEST] ) ),
MonthDiff
)
VAR Revenue =
CALCULATE ( SUM ( 'Post Award Tracking v2'[Revenue_TEST] ) )
VAR Avg_LABOR =
DIVIDE ( CALCULATE ( SUM ( 'Post Award Tracking v2'[Labor_TEST] ) ), MonthDiff )
VAR Labor =
CALCULATE ( SUM ( 'Post Award Tracking v2'[Labor_TEST] ) )
RETURN
GENERATE (
GENERATESERIES ( PoP_Start, PoP_End, 1 ),
VAR inc = [Value]
VAR _Month =
MONTH ( [Value] )
RETURN
ROW (
"PoP Start", PoP_Start,
"PoP End", PoP_End,
"Months", MonthDiff,
"Avg Rev", Avg_Rev,
"Revenue", Revenue,
"Avg Labor", Avg_LABOR,
"Labor", Labor,
"Month", _Month
)
)
)
Min each month date =
IF (
AND (
MONTH ( 'Rev & Labor'[Value] ) = MONTH ( 'Rev & Labor'[PoP Start] ),
YEAR ( 'Rev & Labor'[Value] ) = YEAR ( 'Rev & Labor'[PoP Start] )
),
'Rev & Labor'[PoP Start],
CALCULATE (
MIN ( 'Rev & Labor'[Value] ),
FILTER (
'Rev & Labor',
'Rev & Labor'[Month] = EARLIER ( 'Rev & Labor'[Month] )
&& YEAR ( 'Rev & Labor'[Value] ) = EARLIER ( 'Rev & Labor'[Value].[Year] )
)
) + 20
)
Cree un objeto visual de tabla para mostrar el resultado:
Puede descargar el archivo pbix desde este enlace: CALCULATETABLE para iterar ingresos y gastos a lo largo de los períodos mensuales mediante fechas d...
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @RicoZhou!
Un último elemento: en el ejemplo que proporcionó (que es impresionante, BTW) cada proyecto recorre en iteración las fechas de inicio y finalización de MIN y MAX Period of Performance (POP) Sart y POP End Dates en lugar de las fechas de inicio y finalización individuales de los proyectos. ¿Hay alguna manera de calcular la tabla según la fecha de inicio y finalización de cada proyecto?
Por ejemplo, el proyecto 25011 solo debe tener 6 partidas individuales:
Código de proyecto POP Iniciar POP Fin Número de líneas a Ingresos Promedios y Trabajo
11139 10/1/2014 9/30/2015 11
15147 7/21/2014 7/21/2015 12
15160 2/28/2015 2/15/2016 12
19031 2/16/2015 2/15/2016 12
19032 3/9/2015 3/8/2016 12
24005 7/1/2015 6/30/2016 11
25011 5/1/2015 11/30/2015 6
36007 5/1/2015 9/30/2016 16
¡Aprecio toda la ayuda!
Brad
¡Muchas gracias! Está cerca... ¿Hay alguna manera de hacerlo dinámicamente? Sé que es un poco descuidado, pero el intento de código está abajo. ¿Puedo utilizar GENERATESERIES en función de las columnas inicial y final? Además, en lugar de medidas, me gustaría calcular una tabla para que otros la usen.
Muestra
Nombre del proyecto de código de proyecto POP Iniciar Revenue_TEST Labor_TEST
15147 SATCOM San 7/21/2014 7/20/2015 $1,000,000 $750,000
11139 WAPA Departamento de 10/1/2014 9/30/2015 $1,000,000 $750,000
19031 NAVAIR 7.0 2/16/2015 2/15/2016 $1,000,000 $750,000
15160 Kwaj Seguridad y 2/28/2015 2/15/2016 $1,000,000 $750,000
19032 Análisis Logístico 3/9/2015 3/8/2016 $1,000,000 $750,000
25011 Oak Ridge - DOE 5/1/2015 11/30/2015 $1,000,000 $750,000
36007 NASA Lab Services 5/1/2015 9/30/2016 $1,000,000 $750,000
24005 Fusion Center IDS 7/1/2015 6/30/2016 $1,000,000 $750,000
PRUEBA DE LA PRUEBA DE LA PRUEBA DE
Var baseTable (Var baseTable) ( VAR baseTable)
CALCULATETABLE ( SUMMARIZECOLUMNS ( 'Seguimiento de premios posteriores v2'[Código de proyecto] ) )
devolución
GENERAR (
baseTable,
Meses de VAR ?
DATEDIFF ( [Medida de inicio POP], [Medida final POP], DIA )
VAR Start_Date - [Medida de inicio POP]
VAR End_Date - [Medida final POP]
VAR AvgRev ?
DIVIDE ( [Revenue_Measure], Meses, 0 )
Ingresos de VAR : [Revenue_Measure] //VAR GenSeries - GENERATESERIES([POP Start Measure],[POP End Measure],Months)
devolución
ROW (
"Inicio", Start_Date,
"Fin", End_Date,
"Meses", Meses,
"Avg Rev", AvgRev,
"Ingresos", Ingresos
)
)
¡Muchas gracias por su ayuda!
Hola
No puedo entender tu resultado. ¿Cómo ha llegado a la fecha en la columna Período y los números de las últimas 2 columnas?
Hola
Muestre el resultado esperado con una explicación.
Hola @walkerb32
¿Podría darme más detalles sobre su lógica de cálculo? Puede mostrarme el resultado que desea que la tabla que pueda necesitar usar y las relaciones que construye. O puedes compartirme tu archivo pbix por tu Onedrive for Business.
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |