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.
Tengo una mesa de productos así:
Producto | Características |
1 | A, B |
2 | B, C |
3 | C, D |
Quiero crear una segmentación que tenga las características enumeradas en ella: A o B o C o D, y cuando se selecciona ese caratoico, mi tabla muestra los productos que incluyen esas características. Por lo tanto, al seleccionar B se enumerarían los productos 1 y 2, seleccionando A enumeraría el producto 1.
He intentado hacer esto duplicando la tabla, nombrando el segundo filtro de tabla, luego divido la columna por delimitador y, a continuación, creando una relación a través del producto en las tablas.
Sin embargo, hacer esto sólo me presenta la opción de cortar por A, B o B, C o C, D.
Sospecho que estoy pensando en esto, pero por mi vida no puedo averiguar cómo hacer lo que debe ser una tarea muy básica y común?
Solved! Go to Solution.
@Chaucer Puede hacerlo a través de una segmentación compleja mediante la búsqueda (SEARCH) o CONTAINS y devolver 1 o 0 si se va a mostrar o no.
https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/m-p/1116633#M534
Como:
Flag Measure =
VAR __Slicer = SELECTEDVALUE('Slicer'[Column])
RETURN
IF(SEARCH(__Slicer,'Table'[Column],,0)>0,1,0)
Ok, así que aquí están los pasos:
1) Tabla original:
2) Seleccione la columna Características y utilice la función "Dividir columna" en la cinta de opciones, Elija "coma" como delimitador:
3) Seleccione la columna Producto, elija la función Unpivot en la cinta de opciones y seleccione "Despivot otras columnas"
4) Retire la columna "Atributo":
5) Cambie el nombre de las columnas restantes. También es posible que desee borrar la nueva columna Características por si acaso: selecciónela, vaya a la pestaña Transformar , seleccione Formato en la cinta de opciones y seleccione "Recortar" y luego "Limpiar"
6) Cree una nueva tabla haciendo referencia a la tabla Products (he llamado a esta nueva tabla "Características de Slicer"):
7) Retire la columna "Productos" de esta nueva tabla (Características de la cortadora)
'8) Eliminar duplicados de la columna restante "Chracteristics":
9) cargar en el modelo, y crear una relación de uno a varios entre la tabla "Características de Slicer" y la tabla de productos:
10) Cree una medida para enumerar las características seleccionadas que se utilizarán en el objeto visual de la tabla:
Selected Characteristics =
VAR Charact = CONCATENATEX(VALUES('PB Products'[Characteristics]),
'PB Products'[Characteristics], ", ")
RETURN
IF(ISINSCOPE('PB Products'[Product]), Charact)
Y esto es lo que obtienes:
Si desea incluir las otras características asociadas a los productos filtrados,puede utilizar esta medida:
Other associated Characteristics =
VAR full = CALCULATETABLE(VALUES('PB Products'[Characteristics]), ALLEXCEPT('PB Products','PB Products'[Product]))
VAR Selected = VALUES('PB Products'[Characteristics])
VAR List = CONCATENATEX(EXCEPT(full, Selected), 'PB Products'[Characteristics], ", ")
RETURN
IF(ISBLANK([Selected Characteristics]), BLANK(), List)
Lo que te consigue esto:
Si desea incluir la lista completa de características para los productos filtrados (en lugar de columnas separadas), puede utilizar:
Full Characteristics (filtered) =
VAR full = CALCULATETABLE(VALUES('PB Products'[Characteristics]), ALLEXCEPT('PB Products','PB Products'[Product]))
VAR List = CONCATENATEX(full, 'PB Products'[Characteristics], ", ")
RETURN
IF(ISBLANK([Selected Characteristics]), BLANK(), List)
He incluido el archivo PBIX para su referencia.
Proud to be a Super User!
Paul on Linkedin.
En Power Query:
1) Divida la columna 'Características' en dos para obtener ambos valores en columnas separadas, despotable estas dos columnas. Debería obtener una columna para 'Producto' y otra para la lista de 'Características'
2) haga referencia a esta tabla para crear la segmentación utilizando la sola columna 'Características' con el A, B, C ... Valores. Elimine duplicados, cargue y cree una relación de uno a varios con su primera tabla que vincule las columnas 'Características'
Proud to be a Super User!
Paul on Linkedin.
Chicos, muchas gracias por sus sugerencias. No sé si estoy teniendo una mala semana, pero mi pequeño cerebro no puede hacer que ninguna de tus sugerencias funcione.
@PaulDBrown He derribado algunas tablas con prefijo PB probando su método (Lo que parece súper simple)
@Greg_Deckler Tengo algunas tablas con prefijo GD probando la suya (que se ven súper escalables)
Disculpas por ser tan tenue.
Ok, así que aquí están los pasos:
1) Tabla original:
2) Seleccione la columna Características y utilice la función "Dividir columna" en la cinta de opciones, Elija "coma" como delimitador:
3) Seleccione la columna Producto, elija la función Unpivot en la cinta de opciones y seleccione "Despivot otras columnas"
4) Retire la columna "Atributo":
5) Cambie el nombre de las columnas restantes. También es posible que desee borrar la nueva columna Características por si acaso: selecciónela, vaya a la pestaña Transformar , seleccione Formato en la cinta de opciones y seleccione "Recortar" y luego "Limpiar"
6) Cree una nueva tabla haciendo referencia a la tabla Products (he llamado a esta nueva tabla "Características de Slicer"):
7) Retire la columna "Productos" de esta nueva tabla (Características de la cortadora)
'8) Eliminar duplicados de la columna restante "Chracteristics":
9) cargar en el modelo, y crear una relación de uno a varios entre la tabla "Características de Slicer" y la tabla de productos:
10) Cree una medida para enumerar las características seleccionadas que se utilizarán en el objeto visual de la tabla:
Selected Characteristics =
VAR Charact = CONCATENATEX(VALUES('PB Products'[Characteristics]),
'PB Products'[Characteristics], ", ")
RETURN
IF(ISINSCOPE('PB Products'[Product]), Charact)
Y esto es lo que obtienes:
Si desea incluir las otras características asociadas a los productos filtrados,puede utilizar esta medida:
Other associated Characteristics =
VAR full = CALCULATETABLE(VALUES('PB Products'[Characteristics]), ALLEXCEPT('PB Products','PB Products'[Product]))
VAR Selected = VALUES('PB Products'[Characteristics])
VAR List = CONCATENATEX(EXCEPT(full, Selected), 'PB Products'[Characteristics], ", ")
RETURN
IF(ISBLANK([Selected Characteristics]), BLANK(), List)
Lo que te consigue esto:
Si desea incluir la lista completa de características para los productos filtrados (en lugar de columnas separadas), puede utilizar:
Full Characteristics (filtered) =
VAR full = CALCULATETABLE(VALUES('PB Products'[Characteristics]), ALLEXCEPT('PB Products','PB Products'[Product]))
VAR List = CONCATENATEX(full, 'PB Products'[Characteristics], ", ")
RETURN
IF(ISBLANK([Selected Characteristics]), BLANK(), List)
He incluido el archivo PBIX para su referencia.
Proud to be a Super User!
Paul on Linkedin.
Sí, lo siento por eso... Puede que haya ido un poco por la borda en el detalle... Disculpas si las cosas eran un poco obvias...
Proud to be a Super User!
Paul on Linkedin.
Jaja, no fue increíble. He aprendido un montón de nuevos trucos trabajando a través de sus pasos que no tendría de otra manera! ¡Gracias!
@Chaucer Puede hacerlo a través de una segmentación compleja mediante la búsqueda (SEARCH) o CONTAINS y devolver 1 o 0 si se va a mostrar o no.
https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/m-p/1116633#M534
Como:
Flag Measure =
VAR __Slicer = SELECTEDVALUE('Slicer'[Column])
RETURN
IF(SEARCH(__Slicer,'Table'[Column],,0)>0,1,0)
Hola @Greg_Deckler
Estoy recibiendo un error usando SEARCH en una medida.
"No se puede determinar un único valor para la columna 'Características' en la tabla 'Productos GD'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un único resultado."
¿Estoy siendo tonta?
No te asustes. Lo resolví usando contains en su lugar.
¡Gracias!
Gracias
@Chaucer , ¿sería posible dividir esta columna por fila
https://www.tutorialgateway.org/how-to-split-columns-in-power-bi/
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |