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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo usar columnas calculadas para obtener datos de tablas de Direct Query (o cualquier otro método)

He importado tablas y tablas de consulta directa. En una de mis tablas importadas, necesito encontrar si los valores de una determinada columna se encuentran en la columna de la tabla de consulta directa o no. A continuación, necesito esta información en la segmentación para poder filtrar las filas encontradas o no encontradas en el objeto visual de la tabla. Sin embargo, parece que no puedo hacer que mis columnas calculadas funcionen y la medida tampoco es buena porque no se puede usar en una segmentación. Intenté usar la siguiente fórmula DAX calculada que funcionó en el escritorio pero no en Power BI Service.

Se encuentra el artículo =
VAR CurrentValue = 'Actividad'[Elemento ]
DEVOLUCIÓN
SI(
ISBLANK(CurrentValue),
"No",
SI(
CALCULAR(
COUNTROWS(Configuración),
FILTRO(
Configuración
NO ISBLANK(Configuración[Artículo]) &&
Configuración[Artículo] = ValorActual
)
) > 0,
"Sí",
"No"
)
)

También intenté usar la función RELATED, pero no parece encontrar la columna de la tabla de consulta directa. ¡Cualquier ayuda es apreciada!
10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

Hola @Kasinaama ,

Gracias por formar parte de la comunidad de Microsoft Fabric.

use la función LOOKUPVALUE, que funciona en todas las tablas de DirectQuery. La fórmula comprueba si el elemento de la tabla Actividad existe en la tabla Configuración. Si se encuentra, el resultado será "Sí"; de lo contrario, devolverá "No".


Esta es la fórmula DAX para la columna calculada:


Se encuentra el artículo =
VAR CurrentItem = 'Actividad'[Artículo]
VAR FoundItem =
LOOKUPVALUE(
Configuration[Item], // La columna que está comprobando
Configuration[Item], CurrentItem // Condición coincidente
)
DEVOLUCIÓN
SI(
ISBLANK(FoundItem),
"No",
"Sí"
)

Después de crear esta columna calculada, puede usarla en una segmentación para filtrar entre los valores "Sí" y "No". Esto debería funcionar tanto en Power BI Desktop como en Power BI Service. Sin embargo, tenga en cuenta los posibles problemas de rendimiento en Power BI Service, especialmente cuando se trata de grandes conjuntos de datos de orígenes de DirectQuery. Si el rendimiento se convierte en un problema, considere la posibilidad de optimizar las consultas o agregar datos en el nivel de origen.


Espero que mis sugerencias hayan aportado información valiosa. Si tiene más preguntas, no dude en preguntar en un mensaje de seguimiento.
Si esta publicación ayudó, márquela como "Aceptar como solución" para que otros también puedan beneficiarse.

Saludos
Sahasra.

Eh

Gracias por su respuesta, sin embargo, esta solución tenía el mismo problema. Funciona bien en el escritorio y en el servicio Power BI hasta que se actualizan los datos y luego aparece el error que dice algo como esto:


la consulta hacía referencia a una columna calculada <oii>Activity</oii>[<oii>Item is found</oii>], que no contiene datos porque la evaluación de una fila provocó un error.


¿Alguna idea de lo que pasa?

Hola @Kasinaama ,

Dado que las columnas calculadas de las tablas importadas que hacen referencia a tablas de DirectQuery no se admiten durante la actualización de datos en Power BI Service, la solución más confiable y estable es controlar esta lógica en Power Query.
Para implementar esto, abra Power Query y seleccione la tabla Actividad. A continuación, realice una combinación externa izquierda con la tabla de configuración utilizando la columna Elemento como clave coincidente. Después de la unión, expanda las columnas de la tabla Configuración según sea necesario. A continuación, cree una columna personalizada que compruebe si el Configuration[Item] unido es nulo: si lo es, devuelva "No"; de lo contrario, devuelva "Sí".

Esta nueva columna se puede denominar "Se ha encontrado el elemento" y existirá completamente en la tabla importada, lo que la hace adecuada para su uso en segmentaciones de datos y objetos visuales. Y lo que es más importante, este enfoque funciona de forma coherente tanto en Power BI Desktop como en Service, incluso después de una actualización de datos.

Si mi respuesta fue útil, considere hacer clic en "Aceptar como solución" y envíenos "Felicitaciones" para que otros miembros de la comunidad puedan encontrarlo fácilmente. ¡Avísame si necesitas más ayuda!

Gracias.

Hola @Kasinaama,

Queríamos hacer un seguimiento ya que no hemos tenido noticias suyas con respecto a nuestra última respuesta. Esperamos que su problema se haya resuelto.

Si mi respuesta resolvió su consulta, márquela como "Aceptar respuesta" y felicite si fue útil.

Si necesita más ayuda, no dude en ponerse en contacto con nosotros.

¡Gracias por ser un valioso miembro del foro de la comunidad de Microsoft Fabric!

Eh

¡Perdón por una respuesta un poco tardía! Su solución podría ser útil si pudiera importar la tabla de configuración, pero es una tabla anexada de un modelo semántico diferente que consta de muchas fuentes diferentes. Es por eso que estoy utilizando la consulta directa para ello. Por ahora, solo estoy usando una medida para filtrar la tabla, pero eso no es lo ideal, ya que los usuarios del informe prefieren usar segmentaciones para mostrar las filas de error o los datos en su conjunto. Sin embargo, es lo suficientemente bueno por ahora si no surge nada mejor.

Hola @Kasinaama,

Gracias por la aclaración, y la solución alternativa que usa una medida tiene sentido dadas las restricciones de DirectQuery. Entendemos la preferencia por las segmentaciones, especialmente para la experiencia del usuario final, pero las limitaciones de DirectQuery entre modelos restringen opciones como la importación de tablas de configuración.

Es bueno que la solución funcione por ahora y nos aseguraremos de compartir cualquier actualización futura que mejore la flexibilidad de filtrado en estos escenarios.

Si esta solución funcionó para usted, márquela amablemente como Aceptar como solución y no dude en dar un felicito, ¡sería muy apreciado!

Gracias.

Hola @Kasinaama,

Dado que aún no hemos tenido noticias suyas, me gustaría confirmar si ha resuelto con éxito este problema o si necesita más ayuda.
Si ya resolviste el problema, puedes marcar la respuesta útil como una "solución" para que los demás sepan que la pregunta ha sido respondida y ayudar a otras personas de la comunidad. ¡Gracias de nuevo por su cooperación!
Si aún tiene alguna pregunta o necesita más ayuda, no dude en hacérnoslo saber. Estamos más que felices de seguir ayudándole.

Eh

Bueno, no he encontrado la solución exacta que estaba buscando, pero mi enfoque con medidas servirá por ahora. Estaba planeando dejar esto abierto si en el futuro a alguien se le ocurre algo más.

Hola @Kasinaama,

Cree una tabla de segmentación de datos desconectada:

Item Match Filter = DATATABLE(
    "Match Status", STRING,
    {
        {"Found"},
        {"Not Found"}
    })

Cree una medida para determinar el estado de coincidencia:

Item Match Status = 
VAR SelectedStatus = SELECTEDVALUE('Item Match Filter'[Match Status])
RETURN
    SWITCH(
        SelectedStatus,
        "Found",
            IF(
                NOT ISBLANK(
                    LOOKUPVALUE(
                        Configuration[Item],
                        Configuration[Item], SELECTEDVALUE(Activity[Item])
                    )),
                1, 0 ),
        "Not Found",
            IF(
                ISBLANK(
                    LOOKUPVALUE(
                        Configuration[Item],
                        Configuration[Item], SELECTEDVALUE(Activity[Item])
                    )  ),
                1, 0),
              1)

Cree un objeto visual Tabla con las columnas Artículo y Cantidad de la tabla Actividad. Aplique un filtro de nivel visual mediante la medida Estado de coincidencia de elementos, estableciéndolo en 1. A continuación, agregue una segmentación usando 'Filtro de coincidencia de artículo' [Estado de coincidencia] para permitir que los usuarios filtren por "Encontrado" o "No encontrado".

Adjunto el archivo para su referencia

Gracias.

Hola @Kasinaama,

No hemos tenido noticias suyas sobre la última respuesta y solo estábamos revisando para ver si su consulta fue respondida.
De lo contrario, le responderemos con más detalles y trataremos de ayudar.

Si nuestra respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente. Por favor, háganos saber si hay algo más que podamos hacer para ayudar.

Gracias.

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors