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.
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.
Mariusz
Si esta publicación ayuda, entonces por favor considere Aceptándolo como la solución.
No dude en conectarse conmigo.
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 ) )
Mariusz
No dude en conectarse conmigo.
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) ) )
Mariusz
No dude en conectarse conmigo.
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:
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.
Mariusz
Si esta publicación ayuda, entonces por favor considere Aceptándolo como la solución.
No dude en conectarse conmigo.
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!
Mariusz
No dude en conectarse conmigo.