Este contenido fue traducido mediante IA y no ha sido revisado por un editor humano. Las imágenes y los gráficos permanecen en su idioma original.
Conclusiones clave
- Los Reports de Power BI pueden ser difíciles y llevar mucho tiempo formatearlos como quieres. Hay muchas opciones específicas que no están disponibles, y configurar un formato a medida para los Visuales requiere mucho tiempo.
- Puedes modificar los metadatos del Report para crear Visuales que la UI no permite. Con el formato mejorado de Report de Power BI (PBIR) para los metadatos de los Reports, se permite modificar los metadatos. Algunos miembros emprendedores de la comunidad han descubierto patrones que se renderizan en Visuales, a pesar de no estar disponibles en la UI.
- Estos patrones basados en metadatos no son viables para las personas, pero sí para los agentes de IA. Agentes de programación como Claude Code pueden modificar los metadatos PBIR para dar formato a tus Visuales en lenguaje natural. También pueden crear Visuales y formatos a medida.
- El desarrollo de Reports con agentes es posible, pero complejo. Aunque los agentes pueden trabajar con los metadatos del Report, la realidad es que hay muchas capas de complejidad y matices que hacen que esto sea muy difícil, frágil y requiera mucho tiempo. Los agentes deben conocer el modelo semántico, el tema, DAX y el motor de renderizado, además de los metadatos del Report. Para los agentes es más fácil centrarse en Custom visuals, como los Visuales de R, Python o Deneb.
Este resumen lo ha elaborado el autor, no la IA.
Formato condicional de líneas en un gráfico de líneas de Power BI
Los Visuales principales de los Reports de Power BI siguen mejorando cada mes. Sin embargo, todavía hay muchas propiedades y opciones de formato que no están disponibles. Un ejemplo es el formato condicional de una línea en un gráfico de líneas, como en la siguiente demostración:

Como puedes ver, la línea, el área y los marcadores cambian de color según estén por encima o por debajo de cero. Más adelante en este artículo explicaremos cómo crear este gráfico en Power BI.
Antes, este diseño solo era posible con distintas soluciones alternativas o con Custom visuals. Estas soluciones alternativas suelen implicar un “MacGyvering” complejo de la configuración del Visual, forzando a los Visuales a comportarse de maneras poco intuitivas y difíciles de mantener. Además, normalmente implican patrones de DAX o varias medidas que pueden acabar en problemas de rendimiento. De hecho, muchos de los “Reports lentos” que te encuentras en el mundo real no se deben a un mal DAX o a modelos per se, sino más bien a que la gente intenta que los Visuales de Power BI se comporten de una manera concreta para mostrar los datos como quiere. No es lo ideal, pero algunos descubrimientos recientes lo han hecho aún más interesante.
Recientemente, Marcus Wegener, Rahat Qayyum y otras personas demostraron una técnica curiosa mediante la cual puedes manipular los metadatos del Report de Power BI para lograr el formato condicional de ciertas propiedades y Visuales que la interfaz de usuario de Power BI no admite. Aun así, el Visual seguirá renderizándose y comportándose con normalidad. Y esto no se limita a colores y títulos, sino también a otras propiedades, como los diseños de los gráficos. Aunque es interesante, también tiene inconvenientes:
- Es fácil cometer un error y “romper” el Visual o acabar con un resultado que no llega a renderizar.
- Para hacer cambios, tienes que leer y modificar el JSON; no puedes usar la UI.
- Esto no está documentado y funciona en algunos escenarios o visualTypes, pero no en otros.
En este artículo vamos a mostrar y ampliar este escenario y explicar cómo puedes usarlo para crear el Visual mostrado arriba. Además, hablaremos de lo que esto significa en el contexto del desarrollo de Reports con agentes: cuando un agente de programación modifica directamente los metadatos PBIR para ayudar a los autores de Reports a ahorrar tiempo y dar formato a los Reports.
ADVERTENCIA
No recomendamos usar esta técnica en Reports que despliegues a producción. Este artículo muestra un comportamiento peculiar e interesante de los metadatos PBIR, y las capacidades (y desafíos) de los agentes de programación para facilitar el desarrollo de Reports con agentes. Si necesitas opciones de formato que no están al alcance de la interfaz de usuario de Power BI Desktop, te recomendamos usar Custom visuals de Power BI, como los de AppSource, o los Visuales de Deneb, Python o R.
Usar Claude Code para gestionar los metadatos de tu Report puede ser útil. Sin embargo, debes tener en cuenta que los metadatos del Report pueden contener puntos de datos de tu modelo semántico y, en determinados escenarios, puntos de datos de otros modelos semánticos a los que el Report estuvo vinculado anteriormente.
El escenario: dar formato condicional a una línea en un gráfico de líneas
En este escenario, queremos aplicar formato condicional a la línea, el área y los marcadores de un gráfico de líneas:

El objetivo es generar el gráfico que mostramos antes, donde estos elementos del gráfico se formatean condicionalmente según estén por encima o por debajo de la línea de cero
En este escenario, construiremos el gráfico usando únicamente los Visuales principales de Power BI.
Formato condicional de una línea con la interfaz de usuario
En el gráfico de líneas o de áreas de Power BI, podemos crear fácilmente el gráfico básico. El problema, sin embargo, está en el formato condicional. A fecha de octubre de 2025, no hay soporte para aplicar formato condicional a líneas. Podríamos establecer manualmente el formato para cada mes para lograr el resultado deseado, pero esto no es dinámico.
Sí hay apaños para aplicar formato condicional a los marcadores de la línea. En concreto, puedes configurar el formato condicional en un gráfico de barras y luego cambiarlo a un gráfico de líneas, lo que produce el siguiente resultado:

Obviamente, esto no es lo que queremos. Queremos dar formato a la línea y no solo a sus marcadores. Añadir marcadores a menudo hace que los gráficos de líneas sean menos efectivos, porque quita el foco de la pendiente y la tendencia, y lo pone más en los puntos discretos; si los marcadores son importantes, sinceramente, casi que mejor usar el gráfico de barras.
Para seguir con este camino, también hay apaños en los que se usan dos medidas que son series distintas, cada una con su propio color. Puedes ocultarlas condicionalmente usando DAX. Cada una de las siguientes medidas se convierte en su propia serie:
Demo Order Lines (Above Zero) :=
VAR _Value = [Demo Order Lines]
RETURN
IF(_Value >= 0, _Value, BLANK())
Demo Order Lines (Above Zero) :=
VAR _Value = [Demo Order Lines]
RETURN
IF(_Value < 0, _Value, BLANK())
Aun así, está claro que el resultado no es ideal:

Podemos rizar el rizo con más MacGuyvering: sombreado con barras de error, SVG, etc. La cosa se complica aún más cuando quieres dar formato a la línea en relación con otra serie, como explica muy bien Daniel Marsh-Patrick en este artículo. Así que ahora le damos la vuelta a la mesa, tiramos el portátil por la ventana y nos vamos a casa, ¿no?
Formato condicional de la línea
Como ya adelantamos al principio de este artículo, es posible lograr el resultado si modificamos los metadatos del Visual del Report de una manera muy específica:

Para conseguirlo debemos hacer los siguientes cambios en los metadatos:

El primer cambio (en rojo) sustituye un valor “Literal” por la referencia a la “medida”, haciéndolo dinámico. La medida define el formato condicional del Visual en el Report, como se describe en este artículo. Esto es lo que otras personas de la comunidad de Power BI ya han descrito; te permite controlar dinámicamente muchas (pero no todas) las propiedades del Visual. Esto es bastante fácil de entender.
Sin embargo, el segundo cambio de propiedad (en naranja) es menos evidente. Al leerlo, probablemente no lo entenderías a menos que hayas desarrollado Custom visuals (un tipo de Visual) antes o que estés muy familiarizado con los metadatos del Report de Power BI. En resumen, esta propiedad hace que el contexto de filtro del formato condicional se aplique no por serie de líneas, sino por parte de la línea, donde “parte” son las categorías del eje X (mes, en este caso).
Entonces, ¿cómo lo averiguamos? Pues no lo hicimos. Lo hizo Claude Code.
Desarrollo de Reports con agentes en Power BI
Para conseguir este resultado, le proporcionamos a Claude Code los requisitos y varios ejemplos de gráficos de líneas y otros Visuales con formato condicional. Después, le dimos a Claude Code carta blanca sobre los metadatos y (usando la Fabric CLI) la capacidad de publicar Reports y, luego (con el Playwright MCP server), “verlos”. El agente de programación continuó en bucles iterativos bajo supervisión humana, hasta producir el resultado deseado (después de muchas, muchas iteraciones).
Este es un ejemplo de desarrollo de Reports con agentes, donde el agente de programación modifica directamente los metadatos del Report. Esto es similar a los agentes que modifican archivos TMDL. Sin embargo, es muchísimo más complejo, por razones como las siguientes:
- Los archivos de metadatos del Report son archivos JSON muy anidados y difíciles de entender.
- Los archivos de metadatos contienen referencias a campos, tablas y puntos de datos, así que el agente debe conocer tanto el modelo semántico como el Report.
- Los metadatos hacen referencia al tema del Report, que puede ser un archivo JSON muy grande con el que al agente le costará trabajar y entender.
- Hay muchas incoherencias en los metadatos que hacen que los agentes se confundan.
- Los agentes deben entender DAX, incluidas las medidas del modelo, las medidas de Reports ligeros y los cálculos de Visuales.
- Además, en ocasiones también deben trabajar con otros lenguajes, como Python, R y Vega o Vega-Lite (para Deneb).
- Muchas propiedades de los metadatos no coinciden con su nomenclatura en la interfaz de usuario de Power BI, y a menudo se usan de formas poco intuitivas (como usar barras de error como líneas de objetivo en gráficos de barras).
En resumen, es mucho más probable que los agentes de programación se equivoquen al trabajar con metadatos de Reports que al trabajar con metadatos del modelo semántico. Aunque pueden ayudar a hacer cambios sencillos o a encontrar patrones, les cuesta cualquier cosa a medida o compleja.
Aquí es donde los agentes de código funcionan especialmente bien con los metadatos de los Reports:
- Realizar cambios masivos (como títulos, tamaño de los objetos Visual, cambios de color, etc.) con buenas instrucciones.
- Manipular archivos (copiar, eliminar, mover)
- Crear plantillas de Reports (tomar un ejemplo de un objeto Visual e insertarlo en tu Report con los campos y el formato correctos según tus instrucciones).
- Trabajar con Custom visual.
El último ejemplo es quizá el más interesante. Puedes pedirle fácilmente a un agente de código que cree Reports y Dashboards completos a partir de Python o R, por sí solo, como en el siguiente ejemplo:

Sin embargo, la realidad es que los metadatos del Report son complejos y llenos de matices, y el desarrollo agéntico —aunque posible— exige más esfuerzo por parte de un orquestador humano. Hemos estado investigándolo a fondo con otros miembros de la comunidad y explorando herramientas para facilitarlo.
En resumen, hay una clara oportunidad para que los agentes de código no solo te ayuden a ahorrar tiempo, sino también a hacer más de lo que permite la interfaz de usuario. Por ahora, esto es peligroso y frágil. En el futuro, esto abrirá más posibilidades en la capa de informes de Power BI.
En conclusión
Dar formato y administrar Reports de Power BI lleva mucho tiempo y puede convertirse en un frustrante juego del escondite con los menús del panel de formato. Hay muchas opciones que no están disponibles o que no son evidentes en la UI. Sí puedes modificar directamente los metadatos del Report de Power BI si está en formato PBIR, ya sea manualmente o mediante scripts, lo que puede producir resultados novedosos e interesantes. Sin embargo, esto se vuelve mucho más interesante con agentes de código, que incluso pueden encontrar nuevos patrones. En la práctica, sin embargo, sigue siendo un proceso frágil y difícil; el desarrollo agéntico de Reports exige más al agente que el desarrollo de un modelo semántico.
Aun así, la orquestación adecuada puede dar resultados interesantes, especialmente con Custom visual.
