wynrod
Queridos todos,
Estoy tratando de construir una columna calculada que incrementará un valor cada vez que cambie un valor de campo adyacente, como una tecla de interrupción. En el siguiente ejemplo, GroupID aumenta en 1 cada vez que cambia el valor en la columna GroupKey:
Clave de grupo |
Identificación del grupo |
|
C00001R000001D99999918704 |
1 |
|
C00001R000001D99999918704 |
1 |
|
C00001R000001D9999991121053 |
2 |
|
C00001R000001D9999991121053 |
2 |
|
C00001R000001D9999991161408 |
3 |
|
C00001R000001D9999991161408 |
3 |
|
C00001R000001D9999991161408 |
3 |
|
C00001R000001D9999991243920 |
4 |
|
C00001R000001D9999991243920 |
4 |
|
C00001R000001D9999991244723 |
5 |
|
C00001R000001D9999991244723 |
5 |
Cualquier sugerencia sobre el mejor enfoque sería muy bienvenida, lograr esto en Excel es muy sencillo, pero no tanto en Power BI.
Atentamente,
Mella
dax
En respuesta a wynrod
Hola @wynrod,
Podrías probar debajo del código M
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcjYAAsMgAzDlYgkGhhbmBiZKOkqGSrE6ZKswNDI0MDUGqjGiUI2ZoYmBBVCNMe3VGJkYWxoZANWYUKrGxNwI5C9T4tTEAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [GroupKey = _t, GroupID = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"GroupKey", type text}, {"GroupID", Int64.Type}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"GroupID"}),
#"Grouped Rows" = Table.Group(#"Removed Columns", {"GroupKey"}, {{"all", each _, type table [GroupKey=text]}}),
#"Added Index" = Table.AddIndexColumn(#"Grouped Rows", "Index", 1, 1),
#"Expanded all" = Table.ExpandTableColumn(#"Added Index", "all", {"GroupKey"}, {"GroupKey.1"}),
#"Removed Columns1" = Table.RemoveColumns(#"Expanded all",{"GroupKey"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"GroupKey.1", "GroupKey"}})
in
#"Renamed Columns"
Atentamente,
zoe zhi
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
az38
Hola @wynrod
¿Cuál es la regla para la clasificación de GroupKey?
¿Cómo definirá DAX la fila siguiente y la anterior?
wynrod
En respuesta a az38
Hola, gracias por la respuesta.
El campo GroupKey está ordenado de forma ascendente, en realidad es una clave compuesta de 5 campos separados concatenados, cada uno ordenado asc. El enfoque que he estado tratando de usar es determinar cuándo el valor actual de GroupKey es diferente del anterior. Si este es el caso, incremente GroupID en 1, de lo contrario, manténgalo igual.
Espero que eso aclare un poco más la situación.
Atentamente,
norte
dax
En respuesta a wynrod
Hola @wynrod,
Podrías probar debajo del código M
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcjYAAsMgAzDlYgkGhhbmBiZKOkqGSrE6ZKswNDI0MDUGqjGiUI2ZoYmBBVCNMe3VGJkYWxoZANWYUKrGxNwI5C9T4tTEAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [GroupKey = _t, GroupID = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"GroupKey", type text}, {"GroupID", Int64.Type}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"GroupID"}),
#"Grouped Rows" = Table.Group(#"Removed Columns", {"GroupKey"}, {{"all", each _, type table [GroupKey=text]}}),
#"Added Index" = Table.AddIndexColumn(#"Grouped Rows", "Index", 1, 1),
#"Expanded all" = Table.ExpandTableColumn(#"Added Index", "all", {"GroupKey"}, {"GroupKey.1"}),
#"Removed Columns1" = Table.RemoveColumns(#"Expanded all",{"GroupKey"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"GroupKey.1", "GroupKey"}})
in
#"Renamed Columns"
Atentamente,
zoe zhi
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
wynrod
En respuesta a dax
@dax muchas gracias, ¡funcionó bien!
Muy apreciado,
Mella