Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Estimados miembros de la comunidad,
Tengo dos consultas, llamadas: Org_Tbl, RepTrn_Tbl. Org_tbl tiene los nombres de los clientes, mientras que el RepTrn_Tbl tiene las asistencias e informa información. Tiene una relación con el dinero. Quiero crear una columna para comprobar si estos clientes están activos o no en el período pasado, donde he registrado las fechas de asistencia e informe.
Es algo como esta declaración IF:
ActiveStatus = IF(Org_Tbl[JoinDiffDate]<=3 && SUM(RepTrn_Tbl[Trn_MeetingAttend])<=3 && SUM(RepTrn_Tbl[Trn_WsAct])>=1,"Active",IF(Org_Tbl[JoinDiffDate] > 3 && Org_Tbl[JoinDiffDate] < 6 && SUM(RepTrn_Tbl[Trn_WsAct])>=4 && SUM(RepTrn_Tbl[Trn_MeetingAttend])>=4,"Active",IF(Org_Tbl[JoinDiffDate] > 6 && SUM(RepTrn_Tbl[Trn_MeetingAttend]) >= 4 && SUM(RepTrn_Tbl[Trn_WsAct])>=2,"Active","Inactive")))
Sé que tiene que agruparse por RepTrn_Tbl[Org_ID], pero soy nuevo en DAX y no pude encontrar la solución. Cualquier otra sugerencia, apreciado!.
Gracias por su apoyo con antelación!
Saludos
Mahmoud
Solved! Go to Solution.
No @mahmoud,
De hecho, , creé una medida en lugar de una columna calculada en mi publicaciónanterior. Si necesita crear una columna calculada, puede escribirla de la siguiente forma:
Column for ActiveStatus =
VAR _curdiffd = 'Org_Tbl'[JoinDiffDate]
VAR _trnma =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_MeetingAttend] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
VAR _trnwsa =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_WsAct] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
RETURN
IF (
( _curdiffd <= 3
&& _trnma <= 3
&& _trnwsa >= 1 )
|| ( _curdiffd > 3
&& _curdiffd < 6
&& _trnwsa >= 4
&& _trnma >= 4 )
|| ( _curdiffd > 6
&& _trnma >= 4
&& _trnwsa >= 2 ),
"Active",
"Inactive"
)
Saludos
No @mahmoud,
Como se comprobó la captura de pantalla, hay algunas segmentaciones de datos aplicadas en la página del informe. El valor de una columna calculate se calcula durante la actualización de datos, no cambiará por la interacción del usuario en el informe dinámicamente. Así que por favor cree una medida en lugar de una columna calculada.
Columnas y medidas calculadas en DAX
New measure for ActiveStatus =
VAR _curdiffd =
SELECTEDVALUE ( 'Org_Tbl'[JoinDiffDate] )
VAR _trnma =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_MeetingAttend] ),
FILTER (
'RepTrn_Tbl',
'RepTrn_Tbl'[Org_ID] = SELECTEDVALUE ( 'Org_Tbl'[Org_ID] )
)
)
VAR _trnwsa =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_4WsAct] ),
FILTER (
'RepTrn_Tbl',
'RepTrn_Tbl'[Org_ID] = SELECTEDVALUE ( 'Org_Tbl'[Org_ID] )
)
)
VAR _trnws =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_4Ws] ),
FILTER (
'RepTrn_Tbl',
'RepTrn_Tbl'[Org_ID] = SELECTEDVALUE ( 'Org_Tbl'[Org_ID] )
)
)
RETURN
IF (
( _curdiffd <= 3
&& _trnws <= 3
&& _trnma <= 3
&& _trnwsa >= 1 )
|| ( _curdiffd > 3
&& _curdiffd < 6
&& _trnwsa >= 4
&& _trnma >= 4 )
|| ( _curdiffd > 6
&& _trnws >= 4
&& _trnma >= 4
&& _trnwsa >= 2 ),
"Active",
"Inactive"
)
Saludos
Espero que te vaya bien,
Siento haberte vuelto tarde, me fui en los últimos días.
Gracias por su apoyo y respuesta, la nueva solución funcionó parcialmente, como se ve en la siguiente imagen.
En realidad, una condición adicional no lo mencioné, como supongo que el control de filtro lo hará. La condición adicional es aplicar estas reglas sobre la organización durante los últimos seis meses.
Aquí está el código actualizado que usé
Column for ActiveStatus New =
VAR _curdiffd = 'Org_Tbl'[JoinDiffDate]
VAR _trnma =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_MeetingAttend] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
VAR _trnwsa =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_4WsAct] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
VAR _trnws =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_4Ws] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
RETURN
IF (
( _curdiffd <= 3
&& _trnws <= 3
&& _trnma <= 3
&& _trnwsa >= 1 )
|| ( _curdiffd > 3
&& _curdiffd < 6
&& _trnwsa >= 4
&& _trnma >= 4 )
|| (
_curdiffd > 6
&& _trnws >= 4
&& _trnma >= 4
&& _trnwsa >= 2 ),
"Active",
"Inactive"
)
Gracias por su apoyo con antelación!
Saludos
Mahmoud
No @mahmoud,
Como se comprobó la captura de pantalla, hay algunas segmentaciones de datos aplicadas en la página del informe. El valor de una columna calculate se calcula durante la actualización de datos, no cambiará por la interacción del usuario en el informe dinámicamente. Así que por favor cree una medida en lugar de una columna calculada.
Columnas y medidas calculadas en DAX
New measure for ActiveStatus =
VAR _curdiffd =
SELECTEDVALUE ( 'Org_Tbl'[JoinDiffDate] )
VAR _trnma =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_MeetingAttend] ),
FILTER (
'RepTrn_Tbl',
'RepTrn_Tbl'[Org_ID] = SELECTEDVALUE ( 'Org_Tbl'[Org_ID] )
)
)
VAR _trnwsa =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_4WsAct] ),
FILTER (
'RepTrn_Tbl',
'RepTrn_Tbl'[Org_ID] = SELECTEDVALUE ( 'Org_Tbl'[Org_ID] )
)
)
VAR _trnws =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_4Ws] ),
FILTER (
'RepTrn_Tbl',
'RepTrn_Tbl'[Org_ID] = SELECTEDVALUE ( 'Org_Tbl'[Org_ID] )
)
)
RETURN
IF (
( _curdiffd <= 3
&& _trnws <= 3
&& _trnma <= 3
&& _trnwsa >= 1 )
|| ( _curdiffd > 3
&& _curdiffd < 6
&& _trnwsa >= 4
&& _trnma >= 4 )
|| ( _curdiffd > 6
&& _trnws >= 4
&& _trnma >= 4
&& _trnwsa >= 2 ),
"Active",
"Inactive"
)
Saludos
No @mahmoud,
¿En qué columna se basa al crear una relación entre estas dos tablas? ¿Campo de nombre de cliente? En caso afirmativo, cree una medida como se indica a continuación:
ActiveStatus =
VAR _curdiffd =
SUM ( 'Org_Tbl'[JoinDiffDate] )
RETURN
IF (
(
_curdiffd <= 3
&& SUM ( RepTrn_Tbl[Trn_MeetingAttend] ) <= 3
&& SUM ( RepTrn_Tbl[Trn_WsAct] ) >= 1
)
|| (
_curdiffd > 3
&& _curdiffd < 6
&& SUM ( RepTrn_Tbl[Trn_WsAct] ) >= 4
&& SUM ( RepTrn_Tbl[Trn_MeetingAttend] ) >= 4
)
|| (
_curdiffd > 6
&& SUM ( RepTrn_Tbl[Trn_MeetingAttend] ) >= 4
&& SUM ( RepTrn_Tbl[Trn_WsAct] ) >= 2
),
"Active",
"Inactive"
)
Si el anterior no funciona en su escenario, proporcione algunos datos de ejemplo (excluir datos confidenciales) en Org_Tbl y RepTrn_Tbl tabla y la lógica de cálculo sobre ActiveStatus. Gracias.
Saludos
Estimado @yingyinr gracias por su apoyo!
Por favor, encuentre en la siguiente imagen las realaciones desendulzando las tres tablas.
La lógica que escribió para la instrucción IF es totalmente correcta excepto la SUMA de JoinDiffDate, este es un número para medir cuánto tiempo se ha registrado la organización
Gracias por su apoyo con antelación!
Saludos
Mahmoud
No @mahmoud,
De hecho, , creé una medida en lugar de una columna calculada en mi publicaciónanterior. Si necesita crear una columna calculada, puede escribirla de la siguiente forma:
Column for ActiveStatus =
VAR _curdiffd = 'Org_Tbl'[JoinDiffDate]
VAR _trnma =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_MeetingAttend] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
VAR _trnwsa =
CALCULATE (
SUM ( RepTrn_Tbl[Trn_WsAct] ),
FILTER ( 'RepTrn_Tbl', 'RepTrn_Tbl'[Org_ID] = 'Org_Tbl'[Org_ID] )
)
RETURN
IF (
( _curdiffd <= 3
&& _trnma <= 3
&& _trnwsa >= 1 )
|| ( _curdiffd > 3
&& _curdiffd < 6
&& _trnwsa >= 4
&& _trnma >= 4 )
|| ( _curdiffd > 6
&& _trnma >= 4
&& _trnwsa >= 2 ),
"Active",
"Inactive"
)
Saludos
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |