Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.