Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Así que tengo una tabla con una columna que enumera varios nombres en cada fila. Solo un nombre en cada fila es relevante. Quiero deshacerme de los otros nombres, basándome en una lista de nombres que he almacenado en otro lugar.
Así que:
Nombres | Valor |
Joe, Clara, Sharon | x |
Kelly, Clara, John, Barbara | y |
Jacob, Kelly | z |
Solo me preocupo por Joe y Kelly, así que lo que me gustaría ver es:
Nombres | Valor |
Joe | x |
Kelly | y |
Kelly | z |
No sé si necesito cambiar la consulta o hacer una columna calculada o algo más. Intenté dividir las columnas y crear una nueva columna, pero tengo muchos datos y una larga lista de nombres que quiero extraer de esa columna de nombres. Prefiero no enumerar las varias docenas de nombres que deben verificarse en cada una de las 4 columnas recién creadas. ¿Hay una manera relativamente simple de abordar esto?
Solved! Go to Solution.
@Fantasticmuse IDNumber no es correc,t you want [Valor]
Agent =
VAR __NamesICareAbout = ALL(Agents[Name])
VAR __Text = SUBSTITUTE([Assigned To],",","|")
VAR __Count = PATHLENGTH(__Text)
VAR __Table =
FILTER(
ADDCOLUMNS(
GENERATESERIES(1,__Count,1),
"__Name",
PATHITEM(__Text,[Value])
),
[__Name] IN __NamesICareAbout
)
RETURN
CONCATENATEX(__Table,[__Name],";")
Está utilizando el "índice" creado por GENERATESERIES para extraer el elemento de ruta correcto de la ruta de texto. GENERATESERIES crea una tabla de una sola columna con el nombre de columna "Value".
Hay @Fantasticmuse
Si lo entiendo correctamente, puede mantener los datos simples y limpios, aquí hay una forma en M. No estoy seguro de si tendrá a Joe y Kelly en la misma lista, así que use la lista, puede agregar más nombres si le importa otra persona que no sea Joe y Kelly
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8spP1VFwzkksStRRCM5ILMrPU9JRqlCK1YlW8k7NyamES3rlZ+TpKDglFiUBuUA1lWA1XonJ+Uk6CmClQMEqpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Names = _t, Value = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Names", type text}, {"Value", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "newName", each List.Select(Text.Split([Names],", "), each List.Contains({"Joe","Kelly"}, _))),
#"Expanded newName" = Table.ExpandListColumn(#"Added Custom", "newName")
in
#"Expanded newName"
@Fantasticmuse De una manera:
Column =
VAR __NamesICareAbout = SELECTCOLUMNS('PeopeWhoMatter'[Names])
VAR __Text = SUBSTITUE([Names],", ","|")
VAR __Count = PATHLENGTH(__Text)
VAR __Table =
FILTER(
ADDCOLUMNS(
GENERATESERIES(1,__Count,1),
"__Name",PATHITEM(__Text,[Value])
),
[__Name] IN __NamesICareAbout
)
RETURN
CONCATENATEX(__Table,[__Name],", ")
@Greg_Deckler así que DAX es todo con lo que me siento cómodo, así que probé su solución. Esto es lo que insumo:
@Fantasticmuse IDNumber no es correc,t you want [Valor]
Agent =
VAR __NamesICareAbout = ALL(Agents[Name])
VAR __Text = SUBSTITUTE([Assigned To],",","|")
VAR __Count = PATHLENGTH(__Text)
VAR __Table =
FILTER(
ADDCOLUMNS(
GENERATESERIES(1,__Count,1),
"__Name",
PATHITEM(__Text,[Value])
),
[__Name] IN __NamesICareAbout
)
RETURN
CONCATENATEX(__Table,[__Name],";")
Está utilizando el "índice" creado por GENERATESERIES para extraer el elemento de ruta correcto de la ruta de texto. GENERATESERIES crea una tabla de una sola columna con el nombre de columna "Value".
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.