DAX: IF con la función Relatedtable se necesita ayuda

Un usuario Pregunto ✅

galbatrox9

Hola, equipo,

Necesito calcular qué cliente mío debe recibir una consulta. Hay reglas establecidas que puede ver en el código, como la persona que gana menos de 40K necesita una consulta una vez al año, la persona que gana entre 40-70K necesita consultar cada 6 meses, etc.

Tengo esta columna calculada que quiero eliminar y convertir en una medida:

Due for Medical Consultation= 
var DateDiff = (DATEDIFF(LASTDATE(Consultation[Consultation Date]),TODAY(),DAY))

Return

IF(
    Client[Pay Group] = "Under 40K"
    && DateDiff >=365,
    "Due",
    IF(
        Client[Pay Group] = "40-70k"
        && DateDiff >= 180,
        "Due",
        IF(
            Client[Pay Group] = "Above 70K"
            && DateDiff >=90,
            "Due"
        )

¿Alguien puede ayudarme a redactar una medida para respaldar esto?

Vera_33

En respuesta a galbatrox9

Hola @ galbatrox9

Quieres conseguirlo con medidas, ¿verdad? Usé la tabla Client como tabla de dimensiones, la tabla Consualtaion como tabla de hechos. A continuación medidas para su referencia:

LatestDate = SI ([Due for Medical Consultation] = «Due», LASTDATE (Consulation[Consulattion Date]))
LatestResult =
SI([Due for Medical Consultation] = «Vencimiento»,
VAR T1 = FILTRO (Consulación, Consulación[Consulattion Date]=[LatestDate])
REGRESO
MAXX (T1,[Result]))
Vencimiento para consulta médica =
VAR DateDiff =
(DATEDIFF (LASTDATE (Consulation[Consulattion Date] ), HOY (), DÍA))
VAR CurGroup =
SELECTEDVALUE (Cliente[Pay Group] )
REGRESO
CAMBIAR (
CIERTO (),
CurGroup = «Menos de 40K»
&& DateDiff> = 365, «Vencimiento»,
CurGroup = «40-70k»
&& DateDiff> = 180, «Vencimiento»,
CurGroup = «Más de 70 K»
&& DateDiff> = 90, «Vencimiento»,
BLANCO ()
)

Vera_33_0-1596980452675.png

Dnerada

¿Hay alguna razón por la que desee convertir a una medida y no mantenerla como una columna calculada? ¿No está obteniendo el resultado deseado?

galbatrox9

En respuesta a Dnerada

@Dnerada

Teniendo en cuenta las tablas que tengo (ver mi respuesta anterior), no creo que estos datos pertenezcan a ninguna tabla. Preferiría tenerlo almacenado por separado como medida. Incluso desde el punto de vista del rendimiento, debería disminuir el tiempo de actualización, ¿no?

Ashish_Mathur

Hola,

Comparta algunos datos y muestre claramente los grupos de ingresos para la frecuencia de las consultas. Muestra también el resultado esperado en los datos de origen que compartes.

galbatrox9

En respuesta a Ashish_Mathur

@Ashish_Mathur, creé datos de muestra en Excel para mostrarte las tablas que tengo y la tabla visual de salida que quiero:

bxn8lPh

Vera_33

En respuesta a galbatrox9

Hola @ galbatrox9

Quieres conseguirlo con medidas, ¿verdad? Usé la tabla Client como tabla de dimensiones, la tabla Consualtaion como tabla de hechos. A continuación medidas para su referencia:

LatestDate = SI ([Due for Medical Consultation] = «Due», LASTDATE (Consulation[Consulattion Date]))
LatestResult =
SI([Due for Medical Consultation] = «Vencimiento»,
VAR T1 = FILTRO (Consulación, Consulación[Consulattion Date]=[LatestDate])
REGRESO
MAXX (T1,[Result]))
Vencimiento para consulta médica =
VAR DateDiff =
(DATEDIFF (LASTDATE (Consulation[Consulattion Date] ), HOY (), DÍA))
VAR CurGroup =
SELECTEDVALUE (Cliente[Pay Group] )
REGRESO
CAMBIAR (
CIERTO (),
CurGroup = «Menos de 40K»
&& DateDiff> = 365, «Vencimiento»,
CurGroup = «40-70k»
&& DateDiff> = 180, «Vencimiento»,
CurGroup = «Más de 70 K»
&& DateDiff> = 90, «Vencimiento»,
BLANCO ()
)

Vera_33_0-1596980452675.png

Ashish_Mathur

En respuesta a galbatrox9

Hola,

Simplemente no puedo entender tu requerimiento. Alguien más te ayudará. Perdón.

Deja un comentario

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