The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hola
Esto es lo que estoy tratando de lograr:
Mi conjunto de datos:
Fieldname | PersonName | LovesPets |
FieldDatatype | Cadena | Cadena |
Sheldon | Null | |
Amy | Perro | |
centavo | Pájaro, Perro, Gato | |
Howard | Gato,Tortuga | |
Leonard | Perro, Gato |
Ahora, quiero tener una segmentación de datos (filtro) con selección múltiple como así:
Mascota:
Sería genial tener esta lista de valores en la segmentación de datos creada dinámicamente a partir del conjunto de datos principal. Pero está bien si no es dinámico.
Intenté hacer esto usando la consulta Measure y SEARCH DAX (encontró este enfoque en línea), pero las medidas no son aplicables como filtro de nivel de página. Así que eso es un disyuntor. Incluso cuando aplico esto en un objeto visual, los resultados fueron incorrectos.
Cualquier ayuda apreciada.
@v-kelly-msft - Me abrí camino a través de sus instrucciones para dividir las columnas para poder hacer una rebanadora para las diferentes mascotas en este ejemplo. Sin embargo, una vez que tengo la segmentación de datos configurada, seleccionar uno de los elementos no filtra los registros por lo que se seleccionó. El mismo problema ocurre en el archivo adjunto que agregaste. Siento que falta un vínculo entre las dos tablas. ¿Qué me estoy perdiendo? ¡Gracias de antemano!
¿Has encontrado una solución para esto? Tengo el mismo problema y la solución propuesta tampoco funcionaría.
Gracias
Hola
En primer lugar, la columna LovesPets debe tener solo una entrada por celda. Por lo tanto, utilice la función de dividir celdas por delimitador. En Avanzado, seleccione dividir por filas allí.
Hola @amandal1810 ,
La mejor manera es ir a la consulta de energía usando columnas divididas, si no es una buena solución para usted, entonces usted puede crear columnas mulitiple usando dax, como a continuación:
Primero cree una columna para contar el número total de comas:
Comma count = LEN('Table'[LovesPets])-LEN(SUBSTITUTE('Table'[LovesPets],",",""))
A continuación, cree una columna para obtener la primera columna:
Column =
var _searchcomma=SEARCH(",",'Table'[LovesPets],1,0)
Return
IF(_searchcomma=0,'Table'[LovesPets],LEFT('Table'[LovesPets],_searchcomma-1))
Y verás:
A continuación, continúe creando las columnas restantes:
Remainingstring =
IF('Table'[Comma count]=0,BLANK(),RIGHT('Table'[LovesPets],LEN('Table'[LovesPets])-LEN('Table'[Column])-1)
)
Column 2 =
var _searchcomma=SEARCH(",",'Table'[Remainingstring],1,0)
Return
IF('Table'[Remainingstring]<>BLANK(),IF(_searchcomma=0,'Table'[Remainingstring],LEFT('Table'[Remainingstring],_searchcomma-1))
)
Por último, cree una tabla para la segmentación de datos:
Slicer table = DISTINCT(UNION(DISTINCT('Table'[Column]),DISTINCT('Table'[Column 2])))
Y verás:
Para obtener más información, los pls se refieren a los datos adjuntos.
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
Hola Kelly,
Creé las columnas y la tabla de segmentación como se muestra en los pasos, pero no veo que la segmentación pueda filtrar la tabla (en el PBI compartido por usted tampoco puede filtrar)
¿Me estoy perdiendo algo, podría guiarme con los próximos pasos?
.. gracias
Hola Kelly,
Una vez que se crea la columna y se crea la tabla de segmentación, ¿qué se hace después de eso?
No veo que la tabla de segmentación filtre los datos de la tabla.
¿Puede guiar o sugerir lo que me estoy perdiendo después de eso?
Muchas gracias Kelly por su respuesta detallada! Desafortunadamente no aborda mi caso de uso completamente.
El número de valores en la columna LovesPets es dinámico: así que no sabría con seguridad cuántas columnas necesito dividirlo. Y la columna RemainingString todavía contendría las cadenas concat-ed de coma, con lo que me pondría en el mismo problema con el que comencé.
Hola @amandal1810 ,
Sí, el uso de dax es un poco complejo en su caso, como la columna LovesPets es dinámica, no sabemos cuántas comas puede tener cada fila, columna "recuento de comas" es ayuda para contar el número total de comas en una fila, que le dice cuántas columnas puede necesitar crear.
----ColumnaRemainingString seguiría conteniendo la coma
Sí, ya que cada fila puede tener diferentes números de coma, necesitamos una columna intermedia para almacenar las cadenas restantes que pueden tener comas dentro. No hay una manera fácil de obtener directamente todos los valores antes de la coma.
Mi sugerencia es que si es posible, es mejor ir a la consulta de energía>dividir columna por coma, que sería mucho más fácil.
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
Una forma de hacerlo es dividir la columna en filas en Power Query mediante "Dividir columna" y usar esa columna como segmentación de datos
Proud to be a Super User!
Gracias por su respuesta Farhan!
no creo que esta solución sea viable. Motivo: el conjunto de datos en cuestión se extrae de Azure SQL Server y tiene más de 4 millones de filas. Ahora, si divido la columna en filas como se dijo, va a descomponer el conjunto de datos. No creo que PowerBI pueda manejarlo. Sin embargo, probaré este enfoque.
No estoy seguro de si esto funciona para usted, pero ¿ha comprobado Filtro de texto de la fuente de la aplicación "?
https://appsource.microsoft.com/en-us/product/power-bi-visuals/WA104381309?src=office&tab=Overview
Proud to be a Super User!
Sí, e hice un vistazo a esto. El usuario final tiene que escribir los valores, que no es lo que estoy buscando.
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the June 2024 Power BI update to learn about new features.