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.
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 1 | Columna 2 |
123D | formulario1 |
123D | formulario1, formulario 2 |
456J | árbol1, árbol2, árbol3 |
456J | árbol1, árbol2, árbol3 |
765T | mar1 |
896R | bee3 |
145P | lago2 |
145P | lago3 |
Solved! Go to Solution.
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
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
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])
No @richleeb2
Sí, es posible, aunque prefiero M
Medida de DAX
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
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
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
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 🙂
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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |