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

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.

Reply
amandal1810
Employee
Employee

Cortadora en la lista separada por comas de la cadena

Hola

Esto es lo que estoy tratando de lograr:

Mi conjunto de datos:

FieldnamePersonNameLovesPets
FieldDatatypeCadenaCadena
SheldonNull
AmyPerro
centavoPájaro, Perro, Gato
HowardGato,Tortuga
LeonardPerro, Gato

Ahora, quiero tener una segmentación de datos (filtro) con selección múltiple como así:

Mascota:

  • Perro
  • Gato
  • Pájaro
  • Tortuga
  • Blanco

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.

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

@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!

Syndicate_Admin
Administrator
Administrator

¿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í.

v-kelly-msft
Community Support
Community Support

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:

Screenshot 2020-10-05 100650.png

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:

Screenshot 2020-10-05 102921.png

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!

FarhanAhmed
Community Champion
Community Champion

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

Split-into-Rows.png







Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!

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







Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!

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.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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