Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola
Estoy tratando de calcular una medida para contar el número distinto de nuevas combinaciones, cancelaciones y restablecimientos en función de la fecha máxima de transacción.
Aquí están los datos de muestra.
Tabla de hechos
Miembro | Fecha de la transacción | Estado |
Jb | lunes, 4 de enero de 2021 | Nueva unión |
Dc | Domingo, 10 de enero de 2021 | Nueva unión |
Jb | Sábado, 6 de febrero de 2021 | Cancelar |
Jb | lunes, 8 de febrero de 2021 | Reintegrar |
Dc | Miércoles, 10 de febrero de 2021 | Cancelar |
La tabla de hechos está conectada a la tabla Dim Date
Lo que estoy tratando de lograr es
Por ejemplo:
Si selecciono un intervalo de fechas del 1 de enero de 2021 al 5 de enero de 2021
Nuevas uniones (o) 1 (Solo JB tiene un nuevo estado de unión)
Cancelar (o) n.o 0 (ninguno de los miembros tiene el estado de cancelación)
Restablecer (o) 0 (ninguno de los miembros tiene el estado de restablecimiento)
Si selecciono el intervalo de fechas del 1 de enero de 2021 al 31 de enero de 2021
Nuevas Uniones (-) 2 (JB y DC tienen nuevo estado de unión)
Cancelar (o) n.o 0 (ninguno de los miembros tiene el estado de cancelación)
Restablecer (o) 0 (ninguno de los miembros tiene el estado de restablecimiento)
Si selecciono el rango de fechas del 1 de enero de 2021 al 7 de febrero de 2021
Nuevas uniones (-) 1 (este es el miembro DC y no JB)
Cancelar (o) 1 (ya que JB ahora está en estado de cancelación)
Restablecer (o) 0 (ninguno de los miembros tiene el estado de restablecimiento)
Si selecciono el rango de fechas del 1 de enero de 2021 al 28 de febrero de 2021
Nuevas uniones (-) - 0 (Ninguno de los miembros está en el nuevo estado de unión ahora)
Cancelar (o) 1 (ya que el controlador de dominio ahora está en estado de cancelación)
Restablecimiento (o) 1 (dado que JB ahora está en el estado de restablecimiento)
Espero haber podido explicar la pregunta.
Cualquier ayuda aquí es muy apreciada.
Gracias
Solved! Go to Solution.
No @JIGAR,
Pruebe la siguiente fórmula:
Result =
var _Table =
FILTER(
ALLSELECTED('Fact Table'),
'Fact Table'[Multiplier] = 1
&& 'Fact Table'[Member] = MAX('Fact Table'[Member])
)
var _Date =
MINX(
_Table,
'Fact Table'[Transaction Date]
)
return
COALESCE(
CALCULATE(
MAX('Fact Table'[Status]),
FILTER(
_Table,
'Fact Table'[Transaction Date] = _Date
)
),
"NA"
)
Este es mi archivo PBIX.
Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.
Saludos
Winniz
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
@v-kkf-msft : Esta cosa funcionó muy bien. Muchas gracias.
Sin embargo, ¿cómo calculo el recuento de miembros en cada estado.
Así que ir con el mismo ejemplo anterior:
Para este intervalo de fechas y resultado
¿Cómo puedo mostrar el recuento
Restablecer = 1
Nueva unión = 0
Cancelar = 0
Este recuento debe cambiar en función del intervalo de fechas seleccionado y también conservar la lógica anterior.
¿Puede ayudarme con esa lógica DAX?
Gracias
No @JIGAR,
Pruebe la siguiente fórmula:
Measure =
var _count=
IF(
MAX('Fact Table'[Status]) = [Result],
COUNT('Fact Table'[Multiplier])
)
var total =
CALCULATE(
DISTINCTCOUNT('Fact Table'[Member]),
FILTER(
'Fact Table',
[Result] <> "NA"
)
)
return
IF(
ISFILTERED('Fact Table'[Status]),
_count,
total
)
Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.
Saludos
Winniz
@JIGAR , Crear una medida como
Measure 7 = Sumx(SUMMARIZE(Table3,Table3[Member],"_1",if(CALCULATE(max(Table3[Status]), filter(Table3, Table3[Transaction Date] =CALCULATE(max(Table3[Transaction Date]), filter(ALLSELECTED(Table3), Table3[Member] =max(Table3[Member]))))) ="New Join",1,0)),[_1])
Muchas gracias @amitchandak
Esta lógica funcionó perfectamente bien hasta que intenté trazar estas medidas en un gráfico de líneas/gráfico de columnas.
Al trazar estas medidas en un gráfico de líneas, es doble contar los miembros.
Para un intervalo de fechas del 1 de enero de 2021 al 28 de febrero de 2021,
JB está ahora en estado de reinstaurado
DC está ahora en estado de cancelación.
La captura de pantalla siguiente muestra que hay 2 miembros en Nuevas Uniones y 1 cada uno en restablecer y cancelar.
Las tarjetas KPI en la parte superior muestran los números correctos.
¿Alguna idea de cómo manejo esto?
Gracias de nuevo por su ayuda 😊
No @JIGAR ,
Pruebe la siguiente fórmula para crear dos medidas:
RecentDate =
CALCULATE(
MAX( 'Fact Table'[Transaction Date] ),
FILTER(
ALLSELECTED( 'Fact Table' ),
'Fact Table'[Member] = MAX( 'Fact Table'[Member] )
)
)
MemberCount =
VAR MemberSegment =
FILTER(
ALLSELECTED('Fact Table'),
VAR NewDate = [RecentDate]
VAR SegmentForMember =
FILTER (
'Fact Table',
'Fact Table'[Member] = 'Fact Table'[Member]
&&'Fact Table'[Transaction Date] = NewDate
)
VAR IsMemberInSegments = NOT ISEMPTY(SegmentForMember)
RETURN IsMemberInSegments
)
VAR Result =
CALCULATE (
COUNTROWS( 'Fact Table' ),
KEEPFILTERS(MemberSegment)
)
RETURN COALESCE(Result,0)
Si el problema aún no se ha resuelto, proporcione información de error detallada o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.
Saludos
Winniz
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Disculpas por el retraso en la respuesta. Esta lógica funcionó correctamente cuando intenté trazarla en el gráfico de columnas. Muchas gracias por la fórmula de medida.
Sin embargo, la tabla muestra el recuento total de miembros como 5 (ver captura de pantalla). Debe mostrar 2 como se muestra en la medida adyacente.
Mi requisito ha cambiado un poco aquí.
Quiero mostrar el primer estado positivo para cada miembro. es decir, - Estado basado en la fecha mínima de transacción donde el valor multiplicador es +1
Por ejemplo.
Para el intervalo de fechas 1/1/2021 a 2/28/2021
JB - Nueva unión
DC - Nueva unión
Para el intervalo de fechas 2/1/2021 a 2/28/2021
JB - ReInstate
DC - NA
Espero que eso explique la situación. ¿Puede ayudar en cómo manejar este escenario?
Consulte el nuevo formato de datos adjuntos a continuación:
Muchas gracias
saludos
No @JIGAR,
Pruebe la siguiente fórmula:
Result =
var _Table =
FILTER(
ALLSELECTED('Fact Table'),
'Fact Table'[Multiplier] = 1
&& 'Fact Table'[Member] = MAX('Fact Table'[Member])
)
var _Date =
MINX(
_Table,
'Fact Table'[Transaction Date]
)
return
COALESCE(
CALCULATE(
MAX('Fact Table'[Status]),
FILTER(
_Table,
'Fact Table'[Transaction Date] = _Date
)
),
"NA"
)
Este es mi archivo PBIX.
Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.
Saludos
Winniz
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
No @JIGAR,
Pruebe la siguiente fórmula:
Measure =
IF(
MAX('Fact Table'[Status]) = [Result],
COUNT('Fact Table'[Multiplier])
)
Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.
Saludos
Winniz
Esa lógica está bien. Sin embargo, el total parece ser incorrecto.
Este resultado sería incorrecto si usamos esta medida en una tarjeta.
No @JIGAR,
Pruebe la siguiente fórmula:
Measure =
var _count=
IF(
MAX('Fact Table'[Status]) = [Result],
COUNT('Fact Table'[Multiplier])
)
var total =
CALCULATE(
DISTINCTCOUNT('Fact Table'[Member]),
FILTER(
'Fact Table',
[Result] <> "NA"
)
)
return
IF(
ISFILTERED('Fact Table'[Status]),
_count,
total
)
Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.
Saludos
Winniz
@v-kkf-msft : Esta cosa funcionó muy bien. Muchas gracias.
Sin embargo, ¿cómo calculo el recuento de miembros en cada estado.
Así que ir con el mismo ejemplo anterior:
Para este intervalo de fechas y resultado
¿Cómo puedo mostrar el recuento
Restablecer = 1
Nueva unión = 0
Cancelar = 0
Este recuento debe cambiar en función del intervalo de fechas seleccionado y también conservar la lógica anterior.
¿Puede ayudarme con esa lógica DAX?
Gracias
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |