Agregue 6 meses a la fecha de inicio del proyecto y sume los valores de ingresos dentro / fuera de ese proyecto

Un usuario Pregunto ✅

Aaron92

Hola a todos,

Estoy tratando de agregar 6 meses a la fecha de inicio de un proyecto y luego sumar los valores que se encuentran dentro de la fecha de inicio / finalización del proyecto, así como sumar los que quedan fuera de las fechas.

PricingProj Date.png

Intenté calcular primero la fecha de finalización del proyecto, pero sigo recibiendo errores que me dicen que se están proporcionando varios valores … esta era mi sintaxis:

PricProj Date +6 Mths = IF(ISFILTERED(MD_Sites[Site_Name]),
                            (DATEADD(MD_Sites[Pricing_Project_Date].[Date], +6, MONTH)),
                            "Select a Site")

Tengo una tabla del sitio con el nombre, ID, etc. del sitio individual, así como la fecha de inicio del proyecto específico. Estos pueden ser iguales o diferentes para cada sitio individual. También hay varios sitios sin fecha de inicio del proyecto.

La fecha de finalización del proyecto siempre debe ser 6 meses después de su inicio.

Mi intento de la suma fue el siguiente:

Authorised 13D-25 Rev = 
VAR Pricing_Project_Date = CALCULATE(FIRSTDATE(MD_Sites[Pricing_Project_Date]))
VAR Pricing_project_6Mths = CALCULATE(DATEADD(MD_Sites[Pricing_Project_Date], +6, MONTH))
RETURN
CALCULATE(SUMX(REV_Revenue,REV_Revenue[Fee]),
                            FILTER(REV_Revenue,
                            REV_Revenue[TransactionDate] >= Pricing_Project_Date &&
                            REV_Revenue[TransactionDate] <= Pricing_project_6Mths
                            )
)

Pero me quedé en blanco …

¿Algunas ideas?

Salud,

Aaron

Mariusz

En respuesta a Aaron92

Hola @ aaron92

Puede agregar una columna a la tabla de su sitio para calcular sus + 6m, como se muestra a continuación.

Pricing Project Start Date +6m = DATEADD( Site[Pricing Project Start Date].[Date], 6, MONTH )

Entonces debería poder utilizar la siguiente medida.

Measure = 
CALCULATE(
    SUM( 'Transaction'[Value] ) + 0,
    ISBLANK(Site[Pricing Project Start Date +6m].[Date]) = FALSE(),
    FILTER(
        'Transaction',
        'Transaction'[Transaction Date].[Date] >  RELATED( Site[Pricing Project Start Date +6m].[Date] )
    )
)

Vea mi captura de pantalla a continuación con los resultados deseados.

image.png

Atentamente,
Mariusz

Si esta publicación ayuda, entonces por favor considere Aceptándolo como la solución.

No dude en conectarse conmigo.
Mariusz Repczynski

Mariusz

Hola @ aaron92

No estoy seguro de entender su requerimiento, pero intente esto.

Authorised 13D-25 Rev = 
CALCULATE(
    SUM( REV_Revenue[Fee] ),
    DATEADD( MD_Sites[Pricing_Project_Date].[Date], 6, MONTH )
)
Atentamente,
Mariusz
Si esta publicación ayuda, entonces por favor considere Aceptándolo como la solución.

No dude en conectarse conmigo.
Mariusz Repczynski

Aaron92

En respuesta a Mariusz

Hola @Mariusz

No es exactamente lo que estoy buscando, ¡pero gracias por la respuesta! ¡Siempre eres muy receptivo! De hecho, creo que me acerqué un poco más con esta medida:

Unauthorised 13D-40 Rev = 
CALCULATE(
    [13D-40 Revenue],
        FILTER(REV_Revenue,
        REV_Revenue[TransactionDate] > (RELATED('MD_Sites'[Pricing_Project_Date])+180)
        )
)

Básicamente, esto me da el valor correcto que quiero, pero no es tan preciso como me gustaría. Obviamente, la suposición de que 180 días son 6 meses no es del todo correcta.

Traté de construir la función DATEADD en la función RELACIONADA pero no lo permite.

Mi lógica es ligeramente diferente en este ejemplo de la publicación original. Esta vez estoy tratando de evaluar la suma de ingresos de 6 meses después de la fecha de inicio del proyecto.

¿Alguna idea?

Salud,

Aaron

Mariusz

En respuesta a Aaron92

Hola @ aaron92

Pensé que deberías poder anidar RELATED dentro de DATEADD, ¿no te está funcionando?

Unauthorised 13D-40 Rev = 
CALCULATE(
    [13D-40 Revenue],
    FILTER(
        REV_Revenue,
        REV_Revenue[TransactionDate] > DATEADD( RELATED('MD_Sites'[Pricing_Project_Date]), 6, MONTH)
    )
)

Atentamente,
Mariusz

No dude en conectarse conmigo.
Mariusz Repczynski

Aaron92

En respuesta a Mariusz

Hola @Mariusz & @ v-piga-msft,

Quizás esto sea más fácil de explicar con algunos datos ficticios de muestra. Tome estas tablas, por ejemplo:

Tabla de regiones

ID de área Nombre de la región Nombre del área
1 Región 1 Área 1
2 Región 1 Área 2

Tabla de práctica

ID de práctica Nombre de la práctica
1 Práctica 1
2 Práctica 2
3 Práctica 3
4 Práctica 4

Tabla del sitio

Identificación del sitio Nombre del sitio ID de área ID de práctica Fecha de inicio del proyecto de precios
1 Sitio 1 1 1 11/10/2018
2 Sitio 2 1 2 12/12/2018
3 Sitio 3 2 3 15/09/2018
4 Sitio 4 2 4
5 Sitio 5 2 4 01/02/2019

La tabla del sitio se asigna tanto a la región como a la tabla de práctica en sus respectivas columnas de «ID». La región es, obviamente, el nivel más alto de la jerarquía.

También tengo mi tabla de ingresos:

Fecha de Transacción Identificación del sitio Valor
10/08/2018 1 70
20/10/2018 4 82
07/11/2018 5 46
11/08/2018 1 22
11/08/2018 2 62
12/03/2018 4 45
12/03/2018 3 84
12/07/2018 3 25
17/12/2018 1 96
25/12/2018 2 18
28/12/2018 4 31
01/04/2019 2 12
01/04/2019 1 89
01/07/2019 2 96
28/01/2019 2 76
01/02/2019 4 48
02/07/2019 2 43
18/02/2019 4 56
27/03/2019 3 dieciséis
06/04/2019 4 52
26/05/2019 4 100
07/06/2019 2 52
31/07/2019 5 90
10/01/2019 2 43
15/10/2019 4 14
21/10/2019 1 11
13/11/2019 3 80
18/11/2019 4 86
20/11/2019 5 21
12/04/2019 1 87
12/07/2019 3 80

Quiero poder calcular la suma de los ingresos que se obtuvieron 6 meses después de la fecha de inicio del proyecto de precios del sitio. Esto significaría que cada sitio tendrá que calcularse individualmente, ya que las fechas de inicio de su proyecto de precios son diferentes (o es posible que ni siquiera tengan una). Esto luego debería pasar al nivel de práctica, área y región.

Por el momento, mi fórmula actual (a continuación) solo evalúa una fecha de proyecto de precios y la aplica a todos los sitios. Por lo tanto, cuando se filtra un sitio, el cálculo es correcto; sin embargo, cuando se selecciona una práctica (o un nivel superior en la jerarquía), el resultado es incorrecto.

Unauthorised 13D-40 Rev = 
CALCULATE(
    [13D-40 Revenue],
        FILTER(REV_Revenue,
        REV_Revenue[TransactionDate] > (RELATED('MD_Sites'[Pricing_Project_Date])+180)
        )
)

¿Hay alguna manera de que este cálculo evalúe cada sitio individual y luego lo acumule en los otros niveles?

Por ejemplo, los resultados agregados basados ​​en mis datos ficticios deberían ser:

results.png

Salud,

Aaron

Mariusz

En respuesta a Aaron92

Hola @ aaron92

Puede agregar una columna a la tabla de su sitio para calcular sus + 6m, como se muestra a continuación.

Pricing Project Start Date +6m = DATEADD( Site[Pricing Project Start Date].[Date], 6, MONTH )

Entonces debería poder utilizar la siguiente medida.

Measure = 
CALCULATE(
    SUM( 'Transaction'[Value] ) + 0,
    ISBLANK(Site[Pricing Project Start Date +6m].[Date]) = FALSE(),
    FILTER(
        'Transaction',
        'Transaction'[Transaction Date].[Date] >  RELATED( Site[Pricing Project Start Date +6m].[Date] )
    )
)

Vea mi captura de pantalla a continuación con los resultados deseados.

image.png

Atentamente,
Mariusz

Si esta publicación ayuda, entonces por favor considere Aceptándolo como la solución.

No dude en conectarse conmigo.
Mariusz Repczynski

Aaron92

En respuesta a Mariusz

@Mariusz,

Disculpas por la demora en comunicarte con usted, ¡solo estaba probando que esta solución funciona y lo hace!

Muchas gracias, ¡se lo agradezco mucho!

Aaron

Mariusz

En respuesta a Aaron92

Hola @ aaron92

No hay problema, ¡siempre dispuesto a ayudar!

Atentamente,
Mariusz

No dude en conectarse conmigo.
Mariusz Repczynski

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *