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
Syndicate_Admin
Administrator
Administrator

¿Hay alguna manera de contar con delimitadores?

Tengo una tabla con muchas columnas, pero solo me interesan 2 columnas. Para cada valor distinto de la columna 1, quiero que se cuente cuántos valores distintos hay en la columna 2, pero algunas celdas están separadas por una coma. ¿Hay alguna manera de hacer esto con la creación de una medida? La respuesta en este ejemplo es 9 (123D tiene 2 valores distintos, 456J tiene 3, 765T tiene 1, 896R tiene 1 y 145P tiene 2).

Columna 1Columna 2
123Dformulario1
123Dformulario1, formulario 2
456Járbol1, árbol2, árbol3
456Járbol1, árbol2, árbol3
765Tmar1
896Rbee3
145Plago2
145Plago3
2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Puede convertir la columna 2 en una lista con Text.Split([Column2, ", "), y luego en esa columna "Expandir a nuevas filas". A continuación, puede realizar una medida DISTINCTCOUNT en column2 para obtener el resultado deseado.

palmadita

View solution in original post

No @richleeb2

Veo lo que quiere decir, el cálculo se basó en su muestra anterior, debe modificarlo en consecuencia ya que sus datos son diferentes. T1 es la tabla virtual de la medida, por lo que la columna de elemento se agrega en esa tabla. Aquí está el nuevo recuento, por favor proporcione los datos en un formato que las personas puedan copiar en el futuro. No cambié el identificador y usé el filtro en la interfaz de usuario

Vera_33_0-1623466301569.png

CountInProgress = 
    VAR allValues = CONCATENATEX(yourTable,yourTable[Form],", ")
    VAR Nodes = SUBSTITUTE( allValues, ", ", "|" )
    VAR T1= ADDCOLUMNS(GENERATESERIES(1,PATHLENGTH( Nodes ),1),
        "item", PATHITEM( Nodes, [Value] ))
RETURN
   COUNTROWS( GROUPBY(T1,[item]))
Count = SUMX(VALUES(yourTable[ID]),[CountInProgress])

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

No @richleeb2

Sí, es posible, aunque prefiero M

Medida de DAX

Vera_33_2-1623379715931.png

Count = 
    VAR allValues = CONCATENATEX(yourTable,[Column2],",")
    VAR Nodes = SUBSTITUTE( allValues, ",", "|" )
    VAR T1= ADDCOLUMNS(GENERATESERIES(1,PATHLENGTH( Nodes ),1),
        "item", PATHITEM( Nodes, [Value] ))

RETURN
    COUNTROWS(GROUPBY(T1,[item]))

M puro

Vera_33_0-1623379672352.png

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQydlHSUUrLL8o1VIrVQRXQUQBRCkZgCRNTMy+gRElRaipQAkQZQShjYqTNzUxDgNLFqYkQaywszYKA/CSYvKGJaQCQn5OYnWqELgBUEQsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
    #"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Split([Column2],",")),
    #"Grouped Rows" = Table.Group(#"Added Custom", {"Column1"}, {{"all", each _[Custom] }}),
    #"Added Custom1" = Table.AddColumn(#"Grouped Rows", "distinctCount", each List.Count(List.Distinct(List.Combine([all])))),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"all"})
in
    #"Removed Columns"

Gracias, probé la medida dax pero el número no se ve bien con mis datos reales. ¿En qué parte de la fórmula hace referencia a la columna 1? y ¿a qué se refiere "artículo"?

Sí, @richleeb2, usé un objeto visual de tabla con la columna 1 y este recuento. "item" es la nueva columna creada en T1. Entonces, ¿qué conseyó?

Hmm, no veo que se haya creado una nueva columna. Lo siento, pero me olvidé de mencionar que hay un criterio if. En la tabla siguiente, solo cuente distinto SI el estado es correcto para ID. La respuesta a esto es 8.

123A tiene éxito en ambas filas, por lo que cuenta 2 formas distintas (form1, form2)

345F tiene éxito en una sola fila, por lo que cuenta 2 (form1, form2 )

678S es 1

897R es 0 ya que ambos no tienen éxito

344P es 0

234S es 3, ya que ambas filas son correctas

Capture.PNG

No @richleeb2

Veo lo que quiere decir, el cálculo se basó en su muestra anterior, debe modificarlo en consecuencia ya que sus datos son diferentes. T1 es la tabla virtual de la medida, por lo que la columna de elemento se agrega en esa tabla. Aquí está el nuevo recuento, por favor proporcione los datos en un formato que las personas puedan copiar en el futuro. No cambié el identificador y usé el filtro en la interfaz de usuario

Vera_33_0-1623466301569.png

CountInProgress = 
    VAR allValues = CONCATENATEX(yourTable,yourTable[Form],", ")
    VAR Nodes = SUBSTITUTE( allValues, ", ", "|" )
    VAR T1= ADDCOLUMNS(GENERATESERIES(1,PATHLENGTH( Nodes ),1),
        "item", PATHITEM( Nodes, [Value] ))
RETURN
   COUNTROWS( GROUPBY(T1,[item]))
Count = SUMX(VALUES(yourTable[ID]),[CountInProgress])

Gracias su trabajo ahora 🙂

Syndicate_Admin
Administrator
Administrator

Puede convertir la columna 2 en una lista con Text.Split([Column2, ", "), y luego en esa columna "Expandir a nuevas filas". A continuación, puede realizar una medida DISTINCTCOUNT en column2 para obtener el resultado deseado.

palmadita

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.