filtrar algunos datos solo en el último mes de una segmentación de fecha

Un usuario Pregunto ✅

agustindelaf

Hola a todos,

No estoy muy familiarizado con las fórmulas de Dax y tengo el siguiente problema:

¿Cómo puedo filtrar algunas imágenes al último mes de una segmentación de datos, mientras que otras imágenes son filtradas por la segmentación de fechas completa?

gracias.

la solución que encontré hasta ahora fue crear dos cortadores uno al lado del otro, pero con filtrado independiente: uno con todo el rango de tiempo, uno solo con el valor del mes.

espero haber sido claro!

gracias

Vvelarde

En respuesta a agustindelaf

@augustindelaf

Hola, Usa la misma lógica para el resto de campos o medidas.

VarKPI2MonthlyTarget/RCFT =
VAR LastMonth =
    DATE ( YEAR ( MAX ( 'DATA(Update KPIs)'[KPI Update Date] ) ), MONTH ( MAX ( 'DATA(Update KPIs)'[KPI Update Date] ) ), 01 )
RETURN
    IF (
        'DATA(Update KPIs)'[SelectedValue] = "WS 3.5",
        FORMAT (
            CALCULATE (
                AVERAGE ( 'DATA(Update KPIs)'[KPI 2 Monthly Target/RFCT] ),
                FILTER ( 'DATA(Update KPIs)', 'DATA(Update KPIs)'[KPI Update Date] = LastMonth )
            ),
            "Percent"
        ),
        FORMAT (
            CALCULATE (
                SUM ( 'DATA(Update KPIs)'[KPI 2 Monthly Target/RFCT] ),
                FILTER ( 'DATA(Update KPIs)', 'DATA(Update KPIs)'[KPI Update Date] = LastMonth )
            ),
            "Currency"
        )
    )

greg_deckler

En teoría, podría usar una segmentación, pero establecer un filtro de nivel visual en otra medida calculada que fuera el último mes de la fecha que fuera la segmentación. Necesitaría algunos datos para simular para estar seguro de que esto funcionaría, pero en teoría…

agustindelaf

En respuesta a greg_deckler

Hola @Greg_Deckler,

Gracias por responderme.

sí, supongo que el filtro de nivel visual sería una columna calculada (o una medida, ¿no?) con un nombre como «relativeLastMonthFlag».

¿Tiene alguna idea de cómo crear esta medida/columna calculada?

en mi conjunto de datos tengo: una columna de ‘valores’ (etiquetada como decimales), una columna de «fecha» (etiquetada como fecha con días, meses y años)

Muchas gracias de antemano

En respuesta a agustindelaf

Hola @augustindelaf,

Puedes echar un vistazo a las siguientes fórmulas:

Calculate column:
Use current date as the condition to add flag.
LastMonthFlag(Today) = if(FORMAT([Date],"mmmm yyyy")=FORMAT(TODAY(),"mmmm yyyy"),"Las tMonth","Other") 

Use last date of table as the condition to add flag.
LastMonthFlag(LastDate) = if(FORMAT([Date],"mmmm yyyy")=FORMAT(LASTDATE(ALLSELECTED('Table'[Date])),"mmmm yyyy"),"Las tMonth","Other") 

Measure:
LastMonthFlag2(LastDate) = if(FORMAT(MAX('Table'[Date]),"mmmm yyyy")=FORMAT(LASTDATE(ALLSELECTED('Table'[Date])),"mmmm yyyy"),"Las tMonth","Other") 

LastMonthFlag2(Today) = if(FORMAT(MAX('Table'[Date]),"mmmm yyyy")=FORMAT(TODAY(),"mmmm yyyy"),"Las tMonth","Other") 

Saludos,

Xiaoxin-sheng

agustindelaf

En respuesta a v-shex-msft

Hola @v-shex-msft,

Gracias por responderme.

en su respuesta, lo que es interesante para mí es la Medida «LastMonthFlag2 (LastDate)» porque quiero que el sistema funcione en el contexto de filtro actual.

Intenté implementarlo pero no funcionó. ¿Sabes por qué?

Para estar seguro, repito mi necesidad:

Los valores en el círculo amarillo deben filtrarse solo por el último mes de la segmentación (en amarillo también).

Captura.PNG

¿Debe implementarse la medida como el nuevo campo de valor o como un filtro de nivel visual? (en lo personal lo pongo como filtro de nivel visual)

PD: olvídate del formato de fecha, no me importa.

Si puedes resolver eso, ¡sería muy feliz!

Atentamente,

Agustín

agustindelaf

En respuesta a agustindelaf

Hola @v-shex-msft, @Greg_Deckler,

ni idea de como hacer eso?

¡Puedo enviarte mi PBIx si quieres!

Estaría encantado de resolver este problema, ya que estoy seguro de que encontraré a otros clientes que soliciten un sistema de este tipo.

Gracias

Agustín de la fouchardiere

Consultor BI en CGI

En respuesta a agustindelaf

Hola @augustindelaf,

¿Puede compartir los datos de muestra para probar?

Saludos,

Xiaoxin-sheng

agustindelaf

En respuesta a v-shex-msft

Hola @v-shex-msft,

El archivo ha sido subido.

El enlace está aquí:

https://drive.google.com/open?id=0B0os9aXobQDBMENXMTI5NHJtcVE

atentamente,

Agustín

Vvelarde

En respuesta a agustindelaf

@augustindelaf

Hola, Usa la misma lógica para el resto de campos o medidas.

VarKPI2MonthlyTarget/RCFT =
VAR LastMonth =
    DATE ( YEAR ( MAX ( 'DATA(Update KPIs)'[KPI Update Date] ) ), MONTH ( MAX ( 'DATA(Update KPIs)'[KPI Update Date] ) ), 01 )
RETURN
    IF (
        'DATA(Update KPIs)'[SelectedValue] = "WS 3.5",
        FORMAT (
            CALCULATE (
                AVERAGE ( 'DATA(Update KPIs)'[KPI 2 Monthly Target/RFCT] ),
                FILTER ( 'DATA(Update KPIs)', 'DATA(Update KPIs)'[KPI Update Date] = LastMonth )
            ),
            "Percent"
        ),
        FORMAT (
            CALCULATE (
                SUM ( 'DATA(Update KPIs)'[KPI 2 Monthly Target/RFCT] ),
                FILTER ( 'DATA(Update KPIs)', 'DATA(Update KPIs)'[KPI Update Date] = LastMonth )
            ),
            "Currency"
        )
    )

agustindelaf

En respuesta a Vvelarde

@Vvelarde

Mi cliente finalmente aceptó implementar su solución y, como puede ver, puse una tarjeta con la fórmula «MaxDate» al lado de cada visual «Mensual», para decirle al usuario qué mes tiene el último valor (mayo de 2017 en la captura de pantalla).

Esta solución es un gran paso adelante. Sin tal solución, necesitábamos tener 2 cortadores de dátiles.resuelto.PNG

Una gran cosa: ¿puedes explicar cómo funciona la fórmula, paso a paso? hay alguna documentación?

muchas gracias !!

Vvelarde

En respuesta a agustindelaf

@augustindelaf

Estoy feliz de ayudarte.

La fórmula en palabras simples funciona de esta manera:

VarKPI2MonthlyTarget/RCFT =
//Take the last Day selected in the Slicer (MAX Function) and extract the Year and Month. and Use
// The Date Function to create a date with This. Example: Date(2017,5,1) The 1 is the first day in every month. VAR LastMonth = DATE ( YEAR ( MAX ( 'DATA(Update KPIs)'[KPI Update Date] ) ), MONTH ( MAX ( 'DATA(Update KPIs)'[KPI Update Date] ) ), 01 ) RETURN IF ( 'DATA(Update KPIs)'[SelectedValue] = "WS 3.5", FORMAT (
CALCULATE ( AVERAGE ( 'DATA(Update KPIs)'[KPI 2 Monthly Target/RFCT] ), //Filter the Table to only Rows with the Date is equal To LastMonth Variable
FILTER ( 'DATA(Update KPIs)', 'DATA(Update KPIs)'[KPI Update Date] = LastMonth )
), "Percent" ), FORMAT ( CALCULATE ( SUM ( 'DATA(Update KPIs)'[KPI 2 Monthly Target/RFCT] ), FILTER ( 'DATA(Update KPIs)', 'DATA(Update KPIs)'[KPI Update Date] = LastMonth ) ), "Currency" ) )

agustindelaf

En respuesta a Vvelarde

¡Muchas gracias @Vvelarde!

eliminaré todos los mensajes después de su respuesta con el código, excepto esta respuesta con documentación, para aclarar la conversación para otros usuarios en busca de soluciones.

yo tambien tengo habilidades 😉 (por ejemplo, soy bastante bueno con Excel VBA y Power Query). no lo dudes a cambio, estaré encantado de ayudarte, ¡como acabas de hacer por mí!

Muchas gracias

agustindelaf

En respuesta a agustindelaf

@Vvelarde,

Acabo de enterarme, mientras miraba el siguiente video, que era posible de otra manera 🙂 :

Estoy usando Calcular, luego SUMA [KPI2TargetRFCT]y filtro en «LastDate» Fx

testKPI2Objetivo del último mes =

CALCULATE(SUM(‘DATA(Actualizar KPI)'[KPI 2 Monthly Actual]) ; LASTDATE(‘DATA(Actualizar KPI)'[KPI Update Date]))

Funciona bien también 🙂

agustindelaf

En respuesta a Vvelarde

Ey !

Es un buen comienzo, porque muestra datos del mes pasado.

pero no funciona en el contexto del filtro de fecha actual (tiene que ser el último mes de la selección «Rango de tiempo»)

entonces estoy tratando de crear una medida para aislar el último mes de la selección actual en «Fecha de actualización de KPI», que llamaré «Último mes seleccionado».

Y luego tenemos que llamar a este campo en su medida.

¿Crees que puedes ayudarme a hacer eso?

muchas gracias de todos modos, lo que hiciste es un primer nivel requerido para nosotros.

BR,

Agustín

Vvelarde

En respuesta a agustindelaf

@augustindelaf

Tal vez entendí mal- (es posible)

Pero necesita que la medida cambie de acuerdo con la selección de rango de tiempo (usando el mes de la última fecha seleccionada)

Mira la imagen usando la medida:

Objetivo/pronóstico de KP2 modificadoObjetivo/pronóstico de KP2 modificado

agustindelaf

En respuesta a Vvelarde

@Vvelarde,

Hice una verificación de integridad en su medida, sí, funciona en el contexto de filtro actual, por lo que es bueno.

El único problema es que muestra el último valor, incluso si el último valor fue anterior al último mes seleccionado.

Ejemplo :

en el conjunto de datos, mi último valor, «111», es del 04/01/2017. (ver imagen con MaxDate visual)

Después, sin datos hasta final de año.

En mi «Rango de tiempo», el último mes seleccionado es octubre (15/10/2017), muestra 111, pero debería ser 0 porque no hay datos en octubre.

¿Estoy claro ahora?

Captura.PNG

muchas gracias @Vvelarde, nos estamos acercando!

Vvelarde

En respuesta a agustindelaf

@augustindelaf

Funciona 😃 Mirar

mayo seleccionadomayo seleccionadoDiciembre SeleccionadoDiciembre Seleccionado

Retire la Tarjeta de Actual y vuelva a crearla.

agustindelaf

En respuesta a Vvelarde

@Vvelarde ¡Casi funciona!

I Volví a crear la tarjeta pero aún así, aparece el problema.

Si «Último mes» está en blanco, ¡las tarjetas mensuales no deberían mostrar nada! Actualmente muestran el valor del último mes que no está en blanco, no es exactamente lo que necesito.

Les comparto nuevamente el archivo (pbi).

para realizar la verificación de integridad, seleccione «WS 2.1» y Action ID «2.1-005» .

deberías encontrar estos valores: (imagen)

Captura.PNG

En «octubre de 2017», por ejemplo, los valores mensuales deben ser 0 para Target/RFCT y 0 para Actual.

¿Por qué? porque no hay ninguna acción con fecha de actualización de KPI en octubre de 2017, como puede ver.

pero muestran «8k» para Target/RFCT y «12k» para Actual, que son los valores del último mes, no en blanco. (17 de agosto)

ddd.PNG

El archivo Pbi con los valores más recientes se encuentra en este enlace:

https://drive.google.com/open?id=0B0os9aXobQDBLWJhQkM4dzg3alk

Muchas gracias de antemano

agustindelaf

En respuesta a agustindelaf

@v-shex-msft, @Greg_Deckler,

@Vvelarde casi encontró la solución correcta, los datos se filtran en el último mes que no está en blanco, solo necesito que los datos se filtren en el último mes (Bkank o no).

si crees que sabes como hacerlo

Muchas gracias por adelantado.

Deja un comentario

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