DAX: IF con la función de tabla relacionada se necesita ayuda

Un usuario Pregunto ✅

galbatrox9

Hola equipo,

Necesito calcular a qué cliente mío le corresponde una consulta. Hay reglas establecidas que puede ver en el código, como una persona que gana menos de 40K necesita una consulta una vez al año, una persona que gana entre 40-70K necesita una consulta 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 escribir una medida para apoyar esto?

Vera_33

En respuesta a galbatrox9

Hola @galbatrox9

Quieres lograrlo con medidas, ¿verdad? Usé la tabla Cliente como tabla de dimensiones, la tabla Consulta como tabla de hechos. Debajo de las medidas para su referencia:

Última fecha = SI ([Due for Medical Consultation] = «Vence», LASTDATE(Consulación[Consulattion Date]))
ÚltimoResultado =
SI([Due for Medical Consultation] = «Vencido»,
VAR T1 = FILTRO(Consulta,Consulta[Consulattion Date]=[LatestDate])
REGRESO
MÁXX(T1,[Result]))
Debido a Consulta Médica =
VAR DateDiff =
( DATEDIFF ( LASTDATE ( Consulta[Consulattion Date] ), HOY (), DÍA ) )
VAR CurGrupo =
VALOR SELECCIONADO ( Cliente[Pay Group] )
REGRESO
CAMBIAR (
CIERTO (),
CurGroup = «Menos de 40K»
&& DateDiff >= 365, «Vence»,
CurGroup = «40-70k»
&& DateDiff >= 180, «Vence»,
CurGroup = «Por encima de 70K»
&& DateDiff >= 90, «Vence»,
BLANCO ()
)

Vera_33_0-1596980452675.png

Anónimo

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

galbatrox9

En respuesta a Anónimo

@Anónimo

Teniendo en cuenta las tablas que tengo (consulte mi respuesta anterior), no creo que estos datos pertenezcan a ninguna tabla. Preferiría tenerlo almacenado por separado como una 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 cubos de ingresos para la frecuencia de consulta. Muestre también el resultado esperado en los datos de origen que comparte.

galbatrox9

En respuesta a Ashish_Mathur

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

bxn8lph

Vera_33

En respuesta a galbatrox9

Hola @galbatrox9

Quieres lograrlo con medidas, ¿verdad? Usé la tabla Cliente como tabla de dimensiones, la tabla Consulta como tabla de hechos. Debajo de las medidas para su referencia:

Última fecha = SI ([Due for Medical Consultation] = «Vence», LASTDATE(Consulación[Consulattion Date]))
ÚltimoResultado =
SI([Due for Medical Consultation] = «Vencido»,
VAR T1 = FILTRO(Consulta,Consulta[Consulattion Date]=[LatestDate])
REGRESO
MÁXX(T1,[Result]))
Debido a Consulta Médica =
VAR DateDiff =
( DATEDIFF ( LASTDATE ( Consulta[Consulattion Date] ), HOY (), DÍA ) )
VAR CurGrupo =
VALOR SELECCIONADO ( Cliente[Pay Group] )
REGRESO
CAMBIAR (
CIERTO (),
CurGroup = «Menos de 40K»
&& DateDiff >= 365, «Vence»,
CurGroup = «40-70k»
&& DateDiff >= 180, «Vence»,
CurGroup = «Por encima de 70K»
&& DateDiff >= 90, «Vence»,
BLANCO ()
)

Vera_33_0-1596980452675.png

Ashish_Mathur

En respuesta a galbatrox9

Hola,

Simplemente no puedo entender su requerimiento. Alguien más te ayudará. Lo siento.

Deja un comentario

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