Forum Discussion
FECHAS CONDICIONALES
Hola
Estoy desarrollando un informe diario en Power BI, pero si el usuario selecciona una fecha en la que no hay datos, Power BI debe seleccionar los datos de la última fecha con información:
CASO 1 - El usuario seleccionó una fecha con datos: Power BI debe enumerar la información de la fecha seleccionada.
CASO 2 - El usuario seleccionó una fecha sin datos: Power BI debe mostrar información de la última fecha para cada instalación:
Valores de fecha de las instalaciones
---------------------------------
FAC001 2021-08-16 3.000
FAC002 2020-10-01 2.500
FAC003 03-11-2019 4.000
¿Hay alguna manera de hacer esto?
Gracias
Benedito Almeida.
Probar:
Sum Values = VAR MaxDate = MAXX(FILTER(ALL(Table[Date), Table[Date] <= SELECTEDVALUE(IndDate[Date]) && NOT(ISBLANK(SUM(Table[Values])))), Table[Date]) RETURN CALCULATE(SUM(Table[Values]), FILTER(ALL(Table[Date]), Table[Date] = MaxDate)
8 Replies
- Syndicate_AdminAdministrator
@Benedito_1967 Tal vez algo como:
Measure = VAR __Date = SELECTEDVALUE('Calendar'[Date]) VAR __Value = CALCULATE(SUM('Table'[Values]),[Date]=__Date) VAR __NewDate = IF(ISBLANK(__Value),MAX('Table'[Date]),__Date) RETURN CALCULATE(SUM('Table'[Values]),[Date]=__NewDate) - Syndicate_AdminAdministrator
Probar:
Valores de suma =
VAR MaxDate = MAXX(ALL(Table), Table [Date] <= MAX([Date]) && NOT(ISBLANK(SUM(Table[Values]))), Table[Date])DEVOLUCIÓN
CALCULATE(SUMA(Tabla[Valores]), FILTRO(TODO(Tabla), Tabla[Fecha] = MaxDate)
- Syndicate_AdminAdministrator
Buenos días, Pablo.
Muchas gracias por su aportación.
Traté de usar su sugestión, pero el informe ahora devuelve el mismo valor para todas las INSTALACIONES, así:
Valores de fecha de las instalaciones
---------------------------------
FAC001 16/08/2021 90,24
FAC002 16/08/2021 90,24
FAC003 16/08/2021 90,24
Lo que realmente necesito es que para cada FACILITY el informe devuelva su última fecha y valor.
Benedito Almeida.
- Syndicate_AdminAdministrator
Probar:
Sum Values = VAR MaxDate = MAXX(FILTER(ALL(Table[Date), Table[Date] <= SELECTEDVALUE(IndDate[Date]) && NOT(ISBLANK(SUM(Table[Values])))), Table[Date]) RETURN CALCULATE(SUM(Table[Values]), FILTER(ALL(Table[Date]), Table[Date] = MaxDate)
- Syndicate_AdminAdministrator
Allí, @Benedito_1967
Simulé algunas fechas opcionales, con la esperanza de lograr los resultados esperados.
- Cree una nueva columna en la tabla Fecha.
New date = IF ( [Selectable date] = CALCULATE ( MAX ( 'Table'[Date ] ), FILTER ( 'Table', [Date ] = EARLIER ( 'Date'[Selectable date] ) ) ), [Selectable date], CALCULATE ( MAX ( 'Table'[Date ] ), FILTER ( 'Table', [Date ] < EARLIER ( 'Date'[Selectable date] ) ) ) )New value = CALCULATE ( MAX ( 'Table'[Values] ), FILTER ( 'Table', [Date] = EARLIER ( 'Date'[New date] ) ) )2. La nueva tabla de fechas debe establecer una relación con la tabla original.
3. Cree una nueva segmentación de datos de fecha en la vista y el resultado final se muestra en la figura.
Si el método que proporcioné anteriormente no puede resolver su problema, ¿cuál es su resultado esperado? ¿Podría proporcionar más detalles al respecto?
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
- Syndicate_AdminAdministrator
Hola a todos
Me gustaría agradecerles a todos por su ayuda.
He decidido crear un procedimiento almacenado para seleccionar los datos que necesito para el informe.
El SP está trabajando en correlación.
Mi pregunta ahora es: ¿puedo pasar la segmentación de datos de informes (es una fecha) como parámetro al procedimiento almacenado?
Esto resolvería mi problema por completo.
Gracias a todos.
Benedito_1967.
- Syndicate_AdminAdministrator
Hi, @Benedito_1967
Cree una nueva tabla de calendario.
Date = CALENDAR(MIN('Table'[Date]),MAX('Table'[Date]))La nueva medida toma la fecha seleccionada en la segmentación de datos.
New Date = MAX('Date'[Date])Output date = IF ( [New Date] = MAX ( 'Table'[Date] ), CALCULATE ( MAX ( 'Table'[Date] ), FILTER ( ALL ( 'Table' ), [Date] = MAX ( 'Table'[Date] ) ) ), CALCULATE ( MAX ( 'Table'[Date] ), FILTER ( ALL ( 'Table' ), [Date] < MAX ( 'Date'[Date] ) ) ) )New Facilities = CALCULATE ( MAX ( 'Table'[Facilities] ), FILTER ( ALL ( 'Table' ), [Output date] = MAX ( 'Table'[Date] ) ) )New value = CALCULATE ( MAX ( 'Table'[Values] ), FILTER ( ALL('Table'), [Date] =MAX('Table'[Date] ) ) )¿Es este el caso cuando la segmentación de datos de fecha que mencionó está seleccionada como parámetro? Si tiene alguna otra pregunta, por favor responda.
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.