Hayleysea
Hola,
Tengo una tabla con ID de proyecto, etapas y fechas. Las etapas van del 1 al 5, pero no todos los ID de proyectos tienen una entrada de etapa 5. En el caso de que no tengan una entrada a la Etapa 5, necesito usar la fecha de la Etapa 4 más 1 mes para obtener la fecha de la Etapa 5.
Por ejemplo: el proyecto ID 123 tiene una fecha de etapa 5 disponible, así que usaré el 05/12/2020 pero 321 no tiene una entrada de etapa 5, así que usaré la fecha de la etapa 4 del 04/05/2020 + 1 mes = 05 /05/2020.
Todos los proyectos tienen una fecha de la Etapa 4, por lo que idealmente me gustaría que el cálculo de la fecha de la Etapa 5 esté en la misma línea que la Etapa 4 pero en una nueva columna calculada (donde xxx está debajo)
Projecto ID | Escenario | Fecha | Fecha de etapa 5 (columna calculada) |
123 | 1 | 01/12/2020 | |
123 | 2 | 02/12/2020 | |
123 | 3 | 03/12/2020 | |
123 | 4 | 04/12/2020 | xxx |
123 | 5 | 05/12/2020 | |
321 | 1 | 01/05/2020 | |
321 | 2 | 02/05/2020 | |
321 | 3 | 03/05/2020 | |
321 | 4 | 04/05/2020 | xxx |
¡¡Cualquier ayuda es muy apreciada!!
Zubair_Muhammad
@hayleysea
Pruebe esta columna calculada
Column =
VAR Stage5_present =
NOT (
ISEMPTY (
CALCULATETABLE (
VALUES ( TableName[Stage] ),
ALLEXCEPT ( TableName, TableName[Project ID] ),
TableName[Stage] = 5
)
)
)
VAR Value_I_Want =
IF (
Stage5_present,
CALCULATE (
MAX ( TableName[Date] ),
ALLEXCEPT ( TableName, TableName[Project ID] ),
TableName[Stage] = 5
),
EDATE (
CALCULATE (
MAX ( TableName[Date] ),
ALLEXCEPT ( TableName, TableName[Project ID] ),
TableName[Stage] = 4
),
1
)
)
RETURN
IF ( [Stage] = 4, Value_I_Want )
Anónimo
@Hayleysea, cree una columna calculada como se indica a continuación
Column =
VAR stage4date = CALCULATE(MAX(Test[Date]),ALLEXCEPT(Test,Test[Project ID]))
VAR _maxstage = CALCULATE(MAX(Test[Stage]),ALLEXCEPT(Test,Test[Project ID]))
RETURN SWITCH(TRUE()
,AND(Test[Stage]=4,_maxstage = 5),stage4date
,AND(Test[Stage]=4,_maxstage=4),DATEADD(Test[Date].[Date],1,MONTH)
,BLANK())
Hayleysea
En respuesta a Anónimo
Gracias por la respuesta. Este es el error que recibo al implementar esta solución. He encontrado la solución en otra respuesta.
«La función ‘CAMBIAR’ no admite la comparación de valores de tipo Verdadero/Falso con valores de tipo Fecha. Considere usar la función VALOR o FORMATO para convertir uno de los valores».
Zubair_Muhammad
@hayleysea
Pruebe esta columna calculada
Column =
VAR Stage5_present =
NOT (
ISEMPTY (
CALCULATETABLE (
VALUES ( TableName[Stage] ),
ALLEXCEPT ( TableName, TableName[Project ID] ),
TableName[Stage] = 5
)
)
)
VAR Value_I_Want =
IF (
Stage5_present,
CALCULATE (
MAX ( TableName[Date] ),
ALLEXCEPT ( TableName, TableName[Project ID] ),
TableName[Stage] = 5
),
EDATE (
CALCULATE (
MAX ( TableName[Date] ),
ALLEXCEPT ( TableName, TableName[Project ID] ),
TableName[Stage] = 4
),
1
)
)
RETURN
IF ( [Stage] = 4, Value_I_Want )