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.
Buenas tardes a todos,
Así que estoy tratando de crear una columna calculada en mi tabla Citas que examine una tabla Ventas para determinar si se produjo una venta vinculada con una cita.
Tengo dos mesas:
Mesa de citas
Patient_ID | Appt_Date | ¿La cita tenía Venta? |
12345 | 1/1/2021 |
|
23456 | 1/5/2021 |
|
34567 | 1/10/2021 |
|
45678 | 1/20/2021 |
|
Tabla de ventas
Patient_ID | Purchase_Date | Factura ha | Clave de concatenación = Ventas[Patient_ID]&Ventas[Purchase_Date] |
12345 | 1/1/2021 | verdadero | 1234544197 |
23456 | 1/6/2021 | verdadero | 2345644202 |
34567 | 1/15/2021 | falso | 3456744211 |
45678 | 1/20/2021 | falso | 4567844216 |
Ahora el problema con el que me estoy enfrentando es que las citas[Appt_Date] no siempre coinciden con sales[Purchase_Date]. Si la Venta[Purchase_Date] está dentro de los 3 días posteriores a las Citas[Appt_Date], debe estar asociada a esa Fecha de aplicación.
Mi primer pensamiento fue:
¿La cita tenía Venta? =
IF (
LOOKUPVALUE (
Ventas[Factura HA],
Ventas[Clave de concatenación],
Citas[ID del paciente] & ( Citas[Fecha de aplicación]
|| Citas[Fecha de aplicación] + 1
|| Citas[Appt Date] + 2
|| Citas[Appt Date] + 3
|| Citas[Fecha de aplicación] - 1
|| Citas[Fecha de aplicación] - 2
|| Citas[Appt Date] - 3 )
) = TRUE,
"Cierto",
"Falso"
)
Pero esto no funciona. Todas las celdas leen "Falso".
¡Cualquier ayuda sería apreciada!
Solved! Go to Solution.
Hola, @jcawley
Basándome en tu descripción, creé datos para reproducir tu scenairo. El archivo pbix se adjunta al final,
cita:
ventas:
Puede crear una columna calculada o una medida como se muestra a continuación.
Columna calculada:
Column =
var c =
COALESCE(
COUNTROWS(
FILTER(
ALL(Sales),
[Patient_ID]=EARLIER(Appointment[Patient_ID])&&
ABS([Purchase_Date]-[Appt_Date])<=3
)
),0
)
return
IF(
c=0,
FALSE(),
TRUE()
)
medir:
Measure =
var c =
COALESCE(
COUNTROWS(
FILTER(
ALL(Sales),
[Patient_ID]=MAX(Appointment[Patient_ID])&&
ABS([Purchase_Date]-MAX(Appointment[Appt_Date]))<=3
)
),0
)
return
IF(
c=0,
FALSE(),
TRUE()
)
resultado:
Saludos
Allan
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
hola
Muestre el resultado exacto que espera.
Hola, @jcawley
Basándome en tu descripción, creé datos para reproducir tu scenairo. El archivo pbix se adjunta al final,
cita:
ventas:
Puede crear una columna calculada o una medida como se muestra a continuación.
Columna calculada:
Column =
var c =
COALESCE(
COUNTROWS(
FILTER(
ALL(Sales),
[Patient_ID]=EARLIER(Appointment[Patient_ID])&&
ABS([Purchase_Date]-[Appt_Date])<=3
)
),0
)
return
IF(
c=0,
FALSE(),
TRUE()
)
medir:
Measure =
var c =
COALESCE(
COUNTROWS(
FILTER(
ALL(Sales),
[Patient_ID]=MAX(Appointment[Patient_ID])&&
ABS([Purchase_Date]-MAX(Appointment[Appt_Date]))<=3
)
),0
)
return
IF(
c=0,
FALSE(),
TRUE()
)
resultado:
Saludos
Allan
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Hey @jcawley ,
¿por qué no comprueba si el DATEDIFF entre las dos fechas es entre -3 y 3 días?
Si me enseñas cómo se ven las mesas puedo tratar de ayudarte con la fórmula.
Oye @selimovd, no pude conseguir DATEDIFF para trabajar en este contexto! ¿Alguna otra idea?
Hey @jcawley ,
pruebe el siguiente código:
Appointment had Sale =
VAR vPatientID = Appointments[Patient_ID]
VAR vDate = Appointments[Appt_Date]
RETURN
CALCULATE(
COUNTROWS( Sales ),
FILTER(
Sales,
Sales[Patient_ID] = vPatientID
&& DATEDIFF( Sales[Purchase_Date], vDate, DAY ) <= 3
&& DATEDIFF( vDate, Sales[Purchase_Date], DAY ) >= -3
)
)
Voy a mirar en DATEDIFF, pero las mesas están arriba! Deberías poder verlos en mi post original.
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |