cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Uso de una instrucción IF condicional con una búsqueda

Tengo una estructura de datos muy compleja y muy extensa, por lo que solo he incluido las tablas que me preocupan:

Vea las tablas a continuación (disculpas por la captura de pantalla, no pude hacer que se pegara de otra manera)

rax99_0-1655482120294.png

Así que estoy buscando usar dax para proporcionar el valor de la bandera para la columna InsideSystemLoginFlag dentro de CallTable.

Esencialmente, quiero saber si el cliente realizó una llamada durante su sesión de SystemLogin (como se muestra en SystemLoginTable). Como puede ver en las 3 de las 4 llamadas anteriores, se encontraban dentro de la sesión de inicio de sesión del cliente.

Así que la lógica sería algo así como SI CallStartTime ENTRE SystemLogin y SystemLogout THEN 1 ELSE 0

Pero sorprendentemente esto es muy difícil de lograr. Se suma a la complejidad ya que necesita ir a través de la tabla de búsqueda, y ahí es donde estoy luchando.

¿Se puede lograr esto creando una nueva columna de indicador con una simple consulta DAX?

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Gracias @lbendlin por los punteros, vea los datos a continuación en formato de tabla.

Y sí, los resultados deben verse afectados por los filtros, lo cual es bastante importante.

Ive también destacó los valores esperados en negrita.

callTable

ID de cliente callidCallStartTimeInsideSystemLoginFlag
1ci_2g3405/04/2022 00:12:451
2ci_g636306/04/2022 16:17:451
3ci_4g4506/04/2022 21:15:450
4ci_345fg06/04/2022 10:12:451


SystemLoginTable

systemIniciar sesiónSystemLogout C2ID
05/04/2022 07:10:45 05/04/2022 17:19:4514
06/04/2022 09:17:45 06/04/2022 18:17:4515
06/04/2022 00:10:4506/04/2022 00:19:4587
06/04/2022 05:12:4506/04/2022 11:15:4584

CustomerLookUpTable

C2IDID de cliente
87 1
15 2
143
84 4

@RAX99,

Puede agregar una columna personalizada en la tabla de llamadas para obtener la etiqueta de resultado en función de sus condiciones:

Tag =
VAR c2ID =
    LOOKUPVALUE ( Lookup[C2ID], Lookup[CustomerID], T1[customerID] )
VAR result =
    COUNTROWS (
        FILTER (
            SystemLogin,
            SystemLogin[C2ID] = c2ID
                && AND (
                    call[CallStartTime] >= SystemLogin[systemLogin],
                    call[CallStartTime] <= SystemLogin[SystemLogout]
                )
        )
    ) > 0
RETURN
    IF ( result, 1, 0 )

Saludos

Xiaoxin Sheng

Gracias, esto es 80% lo que estoy buscando, sin embargo, estoy recibiendo el siguiente error:

rax99_0-1655985496821.png

Sospecho que hay múltiples entradas de inicio de sesión en la tabla SystemLogin que también pueden superponerse entre sí (el usuario puede iniciar sesión a través de más de un dispositivo) por lo que una llamada puede abarcar múltiples inicios de sesión para ese día. ¿Podemos hacer que esto funcione independientemente de cuántos inicios de sesión diferentes ese día, ya que solo me interesa si la llamada fue en una sesión (cualquiera), y no me importa cuántas sesiones, etc.?

Proporcione datos de muestra desinfectados que cubran completamente su problema.

Muestre el resultado esperado en función de los datos de muestra que proporcionó.

Syndicate_Admin
Administrator
Administrator

¿El resultado es inmutable o puede verse afectado por las opciones de filtro?

Proporcione datos de muestra desinfectados que cubran completamente su problema. Si pega los datos en una tabla en su publicación o utiliza uno de los servicios de archivos, será más fácil ayudarlo. No puedo usar capturas de pantalla de sus datos de origen.

Muestre el resultado esperado en función de los datos de muestra que proporcionó. Las capturas de pantalla del resultado esperado están bien.

https://community.powerbi.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

Helpful resources

Announcements
June 2022 update 768X460.jpg

Check it out!

Click here to read more about the June 2022 updates!

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power BI Dev Camp Session 23 768x460.jpg

Check it Out!

Mark your calendars and join us on Thursday, June 30 at 11a PDT for a great session with Ted Pattison!

June 20 episode 7 with aka link 768x460.jpg

The Power BI Community Show

Join us on June 20 at 11 am PDT when Kim Manis shares the latest on Azure Synapse analytics, the Microsoft Intelligent Data Platform, and notable Power BI Updates from Microsoft Build 2022.

Top Kudoed Authors