amandal1810
Hola,
Esto es lo que estoy tratando de lograr:
Mi conjunto de datos:
Nombre del campo | nombre de persona | amamascotas |
FieldDatatype | cuerda | cuerda |
Sheldon | nulo | |
amy | Perro | |
Centavo | pájaro, perro, gato | |
Howard | gato, tortuga | |
Leonardo | Perro gato |
Ahora, quiero tener una rebanadora (filtro) con selección múltiple así:
Mascota:
- Perro
- Gato
- Pájaro
- Tortuga
- Blanco
Sería genial tener esta lista de valores en la segmentación 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 un filtro de nivel de página. Así que eso es un factor decisivo. Incluso cuando aplico esto en una imagen, los resultados fueron incorrectos.
Cualquier ayuda apreciada.
cristianor
¿Has encontrado una solución para esto? Tengo el mismo problema y la solución propuesta tampoco funcionaría.
Gracias
Ashish_Mathur
En respuesta a cristianor
Hola,
En primer lugar, la columna LovesPets debe tener solo una entrada por celda. Por lo tanto, utilice la función de división de celdas por delimitador. En Avanzado, seleccione dividir por filas allí.
v-kelly-msft
Hola @amandal1810,
La mejor manera es ir a Power Query usando columnas divididas, si no es una buena solución para usted, entonces puede crear varias columnas 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],",",""))
Luego crea 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 tu verás:
Luego 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))
)
Finalmente crea una tabla para la cortadora:
Slicer table = DISTINCT(UNION(DISTINCT('Table'[Column]),DISTINCT('Table'[Column 2])))
Y tu verás:
Para obtener más información, consulte el archivo adjunto.
Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!
amandal1810
En respuesta a v-kelly-msft
¡Muchas gracias Kelly por tu detallada respuesta! Desafortunadamente, no aborda mi caso de uso por completo.
La cantidad de valores en la columna LovesPets es dinámica: por lo tanto, no sabría con seguridad cuántas columnas necesito dividir. Y la columna RemainingString aún contendría las cadenas concatenadas por comas, lo que me llevaría al mismo problema con el que comencé.
v-kelly-msft
En respuesta a amandal1810
Hola @amandal1810,
Sí, usar dax es un poco complejo en tu caso, ya que La columna LovesPets es dinámica, no sabemos cuántas comas puede tener cada fila, la columna «recuento de comas» ayuda a contar el número total de comas en una fila, lo que le indica cuántas columnas puede necesitar para crear.
—-La columna RemainingString aún contendría la coma
Sí, como cada fila puede tener diferentes números de comas, necesitamos una columna intermedia para almacenar las cadenas restantes que pueden tener comas adentro. No hay una manera fácil de obtener directamente todos los valores antes de la coma.
Mi sugerencia es que, si es posible, será mejor que vaya a consulta de energía>columna dividida por coma, lo que sería mucho más fácil.
Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!
farhanahmed
Una forma de hacerlo es dividir su columna en filas en Power Query usando «Columna dividida» y usar esa columna como una segmentación
amandal1810
En respuesta a farhanahmed
Gracias por tu 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 dijiste, explotará el conjunto de datos. No creo que PowerBI pueda manejarlo. Sin embargo, voy a probar este enfoque.
farhanahmed
En respuesta a amandal1810
No estoy seguro de si esto funciona para usted, pero ¿ha verificado el 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
amandal1810
En respuesta a farhanahmed
sí, le eché un vistazo a esto. El usuario final tiene que escribir los valores, que no es lo que estoy buscando.