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.
Cree una fórmula de readmisión que solo devuelva los accts donde hubo una readmisión en 90 días. Excluir las cuentas en las que la admisión y la aprobación de la gestión
Por ejemplo, en la captura de pantalla, todas las cuentas, excepto las filas resaltadas de color amarillo (porque los códigos de admisión y remisión son mayores que 90 días), deben estar en la matriz.
Necesito una fórmula, que traiga esos resultados. Gracias por su ayuda de antemano!
Códigos de procedimiento de admisión = 99221, 99222, 99223
Códigos de procedimiento de aprobación de la gestión = 99238, 99239
Campos...
Solved! Go to Solution.
Hay @jonnyA,
He dividido el problema en dos pasos:
1. Cree una columna calc que obtenga las fechas de admisión y descarga correlacionadas para cada fila
2. Cree una columna calc que obtenga el valor absoluto de la diferencia de fecha
3. Filtrar la tabla por la diferencia de fecha calculada
calc a continuación:
admission_discharge_date =
var _proc_code = 'ABC_Discharge Dataset'[Proc_Code]
var _dos = 'ABC_Discharge Dataset'[DOS]
var _patient_f_name = 'ABC_Discharge Dataset'[Patient_First_name]
var _patient_l_name = 'ABC_Discharge Dataset'[Patient_Last_Name]
return
SWITCH(true(),
_proc_code in {99238, 99239},
CALCULATE(MAX('ABC_Discharge Dataset'[DOS]),FILTER(all('ABC_Discharge Dataset'), 'ABC_Discharge Dataset'[Patient_First_name]= _patient_f_name && 'ABC_Discharge Dataset'[Patient_Last_Name] = _patient_l_name &&'ABC_Discharge Dataset'[DOS]< _dos&& 'ABC_Discharge Dataset'[Proc_Code] in {99221, 99222, 99223})),
_proc_code in {99221, 99222, 99223},
CALCULATE(min('ABC_Discharge Dataset'[DOS]),FILTER(all('ABC_Discharge Dataset'), 'ABC_Discharge Dataset'[Patient_First_name]= _patient_f_name && 'ABC_Discharge Dataset'[Patient_Last_Name] = _patient_l_name &&'ABC_Discharge Dataset'[DOS]> _dos&& 'ABC_Discharge Dataset'[Proc_Code] in {99238, 99239})),
blank())
// CALCULATE(MAX('ABC_Discharge Dataset'[DOS]), FILTER(all('ABC_Discharge Dataset'), 'ABC_Discharge Dataset'[Patient_First_name]= _patient_f_name && 'ABC_Discharge Dataset'[Patient_Last_Name] = _patient_l_name &&'ABC_Discharge Dataset'[DOS]< _dos && _proc_code in {99221, 99222, 99223})))
admit_discharge_delta = ABS(DATEDIFF('ABC_Discharge Dataset'[DOS], 'ABC_Discharge Dataset'[admission_discharge_date],DAY))
Da como resultado lo siguiente:
No FIltered:
Filtrada:
Attched por favor encuentre una muestra pbix.
espero que esto ayude!
Hola, @jonnyA;
Puede intentar crear una medida de marca.
flag =
VAR _next=
IF(
MAX([Proc_Code]) in {99238, 99239},
MAXX(FILTER(ALL(ABC_Discharge),[Patient_First_name]=MAX([Patient_First_name])&&[Patient_Last_Name]=MAX([Patient_Last_Name])
&&[DOS]< MAX('ABC_Discharge'[DOS])&&[Proc_Code] in {99221, 99222, 99223}),[DOS]),
MINX(FILTER(ALL(ABC_Discharge),[Patient_First_name]=MAX([Patient_First_name])&&[Patient_Last_Name]=MAX([Patient_Last_Name])
&&[DOS]>MAX('ABC_Discharge'[DOS])&&[Proc_Code] in {99238, 99239}),[DOS]))
VAR _DIFF=IF(MAX([Proc_Code]) IN {99238,99239},DATEDIFF(_next,MAX([DOS]),DAY),DATEDIFF(MAX([DOS]),_next,DAY))
RETURN IF(_DIFF<90,1,0)
A continuación, aplíquelo en el filtro:
La salida final se muestra a continuación:
Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
¿Alguien sabe cómo puedo arreglar esta medida?
Hola, y gracias por tu ayuda con el archivo que me enviaste, muy útil!
No puedo conseguir que la medida "Bandera" funcione en mi extremo. La fórmula no tiene errores de lo que puedo decir, pero cuando agrego la fórmula a mi matriz, los datos se quedan en blanco.
¿Alguna sugerencia sobre cómo solucionarlo?
Hola, @jonnyA;
Puede intentar crear una medida de marca.
flag =
VAR _next=
IF(
MAX([Proc_Code]) in {99238, 99239},
MAXX(FILTER(ALL(ABC_Discharge),[Patient_First_name]=MAX([Patient_First_name])&&[Patient_Last_Name]=MAX([Patient_Last_Name])
&&[DOS]< MAX('ABC_Discharge'[DOS])&&[Proc_Code] in {99221, 99222, 99223}),[DOS]),
MINX(FILTER(ALL(ABC_Discharge),[Patient_First_name]=MAX([Patient_First_name])&&[Patient_Last_Name]=MAX([Patient_Last_Name])
&&[DOS]>MAX('ABC_Discharge'[DOS])&&[Proc_Code] in {99238, 99239}),[DOS]))
VAR _DIFF=IF(MAX([Proc_Code]) IN {99238,99239},DATEDIFF(_next,MAX([DOS]),DAY),DATEDIFF(MAX([DOS]),_next,DAY))
RETURN IF(_DIFF<90,1,0)
A continuación, aplíquelo en el filtro:
La salida final se muestra a continuación:
Saludos
Team_ de apoyo comunitario Yalan Wu
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@jonnyA
Según sus datos, hay tres filas que superan los 90 días. ¿Desea crear una nueva tabla que muestre solo las tres filas que he resaltado en amarillo o necesita una medida?
@fowny,
No sé por qué estás viendo 3 y i ver 2 tho?
Tenga en cuenta los códigos de admisión vs descarga.
Por lo tanto, si la fecha del código de procedimiento de admisión de Sevice es más de 90 días desde el código de procedimiento de alta, entonces esos pacientes deben dejarse de comer.
Hay @jonnyA,
He dividido el problema en dos pasos:
1. Cree una columna calc que obtenga las fechas de admisión y descarga correlacionadas para cada fila
2. Cree una columna calc que obtenga el valor absoluto de la diferencia de fecha
3. Filtrar la tabla por la diferencia de fecha calculada
calc a continuación:
admission_discharge_date =
var _proc_code = 'ABC_Discharge Dataset'[Proc_Code]
var _dos = 'ABC_Discharge Dataset'[DOS]
var _patient_f_name = 'ABC_Discharge Dataset'[Patient_First_name]
var _patient_l_name = 'ABC_Discharge Dataset'[Patient_Last_Name]
return
SWITCH(true(),
_proc_code in {99238, 99239},
CALCULATE(MAX('ABC_Discharge Dataset'[DOS]),FILTER(all('ABC_Discharge Dataset'), 'ABC_Discharge Dataset'[Patient_First_name]= _patient_f_name && 'ABC_Discharge Dataset'[Patient_Last_Name] = _patient_l_name &&'ABC_Discharge Dataset'[DOS]< _dos&& 'ABC_Discharge Dataset'[Proc_Code] in {99221, 99222, 99223})),
_proc_code in {99221, 99222, 99223},
CALCULATE(min('ABC_Discharge Dataset'[DOS]),FILTER(all('ABC_Discharge Dataset'), 'ABC_Discharge Dataset'[Patient_First_name]= _patient_f_name && 'ABC_Discharge Dataset'[Patient_Last_Name] = _patient_l_name &&'ABC_Discharge Dataset'[DOS]> _dos&& 'ABC_Discharge Dataset'[Proc_Code] in {99238, 99239})),
blank())
// CALCULATE(MAX('ABC_Discharge Dataset'[DOS]), FILTER(all('ABC_Discharge Dataset'), 'ABC_Discharge Dataset'[Patient_First_name]= _patient_f_name && 'ABC_Discharge Dataset'[Patient_Last_Name] = _patient_l_name &&'ABC_Discharge Dataset'[DOS]< _dos && _proc_code in {99221, 99222, 99223})))
admit_discharge_delta = ABS(DATEDIFF('ABC_Discharge Dataset'[DOS], 'ABC_Discharge Dataset'[admission_discharge_date],DAY))
Da como resultado lo siguiente:
No FIltered:
Filtrada:
Attched por favor encuentre una muestra pbix.
espero que esto ayude!
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 |