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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

De JSON a DAX

Hola a todos
Quiero encontrar una solución dinámica que me permita convertir una descripción json de un filtro en una medida dax.
Este es un ejemplo de la descripción json de los filtros que se van a aplicar:

{
"Filtro001": [
{"name": "País", "Tipo":"include", "Valor": "España"},
{"Name": "Región", "Tipo":"Excluir", "Valor": ["Oeste", "Norte"]}
]
"Filtro002": [
{"name": "País", "Tipo":"include", "Value": "España, Italia"},
{"Nombre": "Género", "Tipo":"Excluir", "Valor": "Hombre"}
]
"Filtro003": [
{"name": "Edad", "Tipo":"include", "Valor": ">50"}
]
}
En el informe, quiero ofrecer una segmentación de datos en la que los usuarios puedan seleccionar el filtro que se va a aplicar: Filter001, Filter002 o Filter003 y, al seleccionar el filtro, quiero mostrar los datos filtrados en el objeto visual de la tabla.

Por ejemplo, si un usuario selecciona "Filter001", solo se muestran las filas que tienen País = "España" y Región <> "Oeste" y Región <> "Norte".

Nota. No puedo saber de antemano en qué columna se especifican los filtros. Por eso, necesito una conversión dinámica. No puedo usar marcadores, segmentaciones de datos ni ninguna opción estática porque hay demasiadas columnas en las que se puede especificar un filtro.

Muchas gracias por cualquier aporte


1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@Atf23

La creación de medidas dinámicas de DAX basadas en la entrada JSON requiere una solución dinámica y compleja, que puede no ser totalmente compatible con Power BI directamente. Power BI no tiene funcionalidad nativa para analizar JSON y generar dinámicamente expresiones DAX basadas en eso. Sin embargo, hay algunos enfoques que podrían adoptarse, aunque con limitaciones y complejidad.

Este es un enfoque conceptual que usa una combinación de Power Query para analizar el JSON y generar una tabla, y DAX para aplicar el filtro seleccionado:

1. Analice JSON en Power Query: importe la cadena JSON en Power BI mediante el editor de Power Query. Analice para crear una tabla que enumere cada filtro, sus condiciones y valores.

2. Crear una tabla de segmentación de datos Cree una tabla con una lista distinta de nombres de filtro (Filter001, Filter002, etc.) que los usuarios puedan usar para seleccionar filtros.

3. Crear relaciones: Asegúrese de que las tablas creadas a partir del análisis JSON tengan relaciones con la tabla de datos principal.

4. Medida DAX para filtrado: escriba una medida DAX que use el filtro seleccionado de la segmentación de datos para aplicar el filtrado a los datos. Por lo general, usaría 'SELECTEDVALUE' para obtener la selección de filtro actual y 'FILTER' o 'CALCULATETABLE' para aplicar las condiciones.

A continuación, se muestra un ejemplo aproximado de DAX basado en sus requisitos:

Dynamic Filter =
VAR CurrentFilter = SELECTEDVALUE('FilterSelection'[FilterName])
VAR IncludeCountry = LOOKUPVALUE('ParsedFilterTable'[Value], 'ParsedFilterTable'[FilterName], CurrentFilter, 'ParsedFilterTable'[Name], "Country", 'ParsedFilterTable'[Type], "include")
VAR ExcludeRegion = FILTER(
'ParsedFilterTable',
'ParsedFilterTable'[FilterName] = CurrentFilter && 'ParsedFilterTable'[Name] = "Region" && 'ParsedFilterTable'[Type] = "exclude"
)
VAR FilteredTable =
CALCULATETABLE(
'MainDataTable',
'MainDataTable'[Country] = IncludeCountry,
NOT('MainDataTable'[Region] IN EXCLUDEREGION[Value])
)
RETURN
IF(
ISFILTERED('FilterSelection'[FilterName]),
COUNTROWS(FilteredTable),
COUNTROWS('MainDataTable')
)

Esta medida de DAX es muy conceptual y tendría que adaptarse al modelo específico y a las tablas generadas a partir del análisis JSON.

La complejidad de este enfoque, especialmente en el control de varios tipos de filtros y condiciones, significa que es probable que tenga que usar una herramienta externa o un lenguaje de programación para analizar el JSON y generar expresiones DAX o tablas precalculadas que se puedan volver a importar a Power BI. El scripting de Python dentro de Power BI puede ayudar a automatizar parte de este proceso, pero aún no es sencillo.

Este proceso sería significativamente más fácil si hubiera un número determinado de columnas conocidas en las que se pudiera filtrar, ya que a continuación podría predefinir las medidas de DAX para el filtrado, pero según sus requisitos, este no parece ser el caso.

Debido a estas complejidades, si es posible, recomendaría volver a evaluar los requisitos para ver si hay alguna manera de simplificar o predefinir los filtros hasta cierto punto.

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Aprecia tu Kudo 👍

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.