Anónimo
Hola a todos,
Tengo una tabla que contiene los SBU y su recuento de empleados por fecha.
He escrito una columna calculada que me ha dado
los rangos de cada SBU por función RANKX usando el conteo de empleados.
Ranks = RANKX( FILTER('Table','Table'[Date]=EARLIER('Table'[Date])), 'Table'[Count],,,Dense)
* Nombres SBU intencionalmente colorados como blanco.
Aquí se repiten 4, 5, 6 rangos porque esos sbu tienen los mismos valores.
Ahora me gustaría tener otra columna o medida que me dé
Columna de índice que cambia dinámicamente
Intenté esto pero no tuve suerte.
index = CALCULATE( COUNT('Table'[SBU]), ALL('Table'), FILTER('Table', 'Table'[Date]<=EARLIER('Table'[Date])), FILTER('Table', 'Table'[SBU]=EARLIER('Table'[SBU])))
¿Alguien puede sugerirme por favor?
Gracias
Mohan V
Anónimo
En respuesta a Anónimo
Bueno, tengo una solución por mi cuenta … pero no es mediante el uso de DAX … Su consulta de poder mágico.
Solución:-
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdFNCoAgEIbhu8xaMJ0iW1ba3xXE+18jUSonvp08DDO8GCPNpKjXVtvOuPycKKlIi0RTcJXIBb1EWzCgyQ3t3BEeEoeCJzp0/Q7VSzWJH3VNEqMklks9wiCxTWKUxCjpxbFJYpT0Yf6QdAM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [SBU = _t, Date = _t, Count = _t]), #"Changed Type1" = Table.TransformColumnTypes(Source,{{"Count", Int64.Type}}), #"Sorted Rows" = Table.Sort(#"Changed Type1",{{"Date", Order.Ascending}, {"Count", Order.Descending}}), #"Changed Type" = Table.TransformColumnTypes(#"Sorted Rows",{{"Count", Int64.Type}, {"Date", type date}}), Partition = Table.Group(#"Changed Type", {"Date"}, {{"Count", each Table.AddIndexColumn(_, "Index2",1,1), type table}}), #"Expanded Count" = Table.ExpandTableColumn(Partition, "Count", {"SBU", "Count", "Index2"}, {"SBU", "Count.1", "Index2"}), #"Changed Type2" = Table.TransformColumnTypes(#"Expanded Count",{{"SBU", type text}, {"Count.1", Int64.Type}, {"Index2", Int64.Type}}) in #"Changed Type2"
Gracias por la ayuda @ v-juanli-msft
v-juanli-msft
Hola @Anónimo
«Columna de índice que cambia dinámicamente»
¿Cómo debería cambiar dinámicamente la columna del índice?
C¿Me podría mostrar el resultado esperado que desea o dar un ejemplo?
Aquí pruebo con su conjunto de datos y fórmula
Atentamente
Maggie
Anónimo
En respuesta a v-juanli-msft
Gracias por la respuesta @ v-juanli-msft
la columna de índice dinámico debe obtener valores basados en la columna de clasificación.
la salida esperada es,
SBU | Contar | Rangos | Índice |
A | 33 | 1 | 1 |
B | 9 | 2 | 2 |
C | 5 | 3 | 3 |
D | 3 | 4 | 4 |
mi | 3 | 4 | 5 |
F | 2 | 5 | 6 |
GRAMO | 2 | 5 | 7 |
H | 1 | 6 | 8 |
I | 1 | 6 | 9 |
J | 1 | 6 | 10 |
Aquí me gustaría obtener la columna / medida de los números de fila en función de los valores de clasificación.
Si ve las columnas de clasificación, hay 4, 5, 6 valores que se repiten ya que el valor de recuento es el mismo.
Así que aquí me gustaría obtener los valores del índice de los números de fila.
Por favor sugiéreme.
v-juanli-msft
En respuesta a Anónimo
Hola @Anónimo
En el editor de consultas, cree una columna de índice a partir de 1,
Luego crea una columna calculada
dynamic index = CALCULATE(COUNT('Table'[Ranks]),FILTER(ALL('Table'),[Date]=EARLIER([Date])&&[Index]<=EARLIER([Index])))
Atentamente
Maggie
Anónimo
En respuesta a v-juanli-msft
@ v-juanli-msft gracias por la respuesta.
Bueno, creo que he proporcionado algunas entradas incorrectas, ya que ya están ordenadas, lo que no es en mi caso.
los valores que ves en la captura de pantalla que he proporcionado en realidad no están ordenados.
lo hice por rangos de columna calculada.
Tabla base: –
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdFNCoAgEIbhu8xaMJ0iW1ba3xXE+18jUSonvp08DDO8GCPNpKjXVtvOuPycKKlIi0RTcJXIBb1EWzCgyQ3t3BEeEoeCJzp0/Q7VSzWJH3VNEqMklks9wiCxTWKUxCjpxbFJYpT0Yf6QdAM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [SBU = _t, Date = _t, Count = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Count", Int64.Type}, {"Date", type date}}), #"Sorted Rows" = Table.Sort(#"Changed Type",{{"Date", Order.Ascending}}), #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1), #"Changed Type1" = Table.TransformColumnTypes(#"Added Index",{{"Index", Int64.Type}}) in #"Changed Type1"
En Mi tabla base, si clasifiqué la columna de fecha de manera ascendente y creé la columna de índice, y
cuando probé su dax obtuve el siguiente resultado.
Pero mi salida esperada es: –
SBUDateCountIndex / Rownum
C | 2/4/2018 | 3 | 4 |
mi | 2/4/2018 | 3 | 5 |
F | 2/4/2018 | 1 | 9 |
GRAMO | 2/4/2018 | 1 | 10 |
I | 2/4/2018 | 2 | 7 |
J | 2/4/2018 | 33 | 1 |
H | 2/4/2018 | 5 | 3 |
D | 2/4/2018 | 2 | 6 |
B | 2/4/2018 | 1 | 8 |
A | 2/4/2018 | 9 | 2 |
Por favor ayuda.
MohanV
Anónimo
En respuesta a Anónimo
Bueno, tengo una solución por mi cuenta … pero no es mediante el uso de DAX … Su consulta de poder mágico.
Solución:-
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdFNCoAgEIbhu8xaMJ0iW1ba3xXE+18jUSonvp08DDO8GCPNpKjXVtvOuPycKKlIi0RTcJXIBb1EWzCgyQ3t3BEeEoeCJzp0/Q7VSzWJH3VNEqMklks9wiCxTWKUxCjpxbFJYpT0Yf6QdAM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [SBU = _t, Date = _t, Count = _t]), #"Changed Type1" = Table.TransformColumnTypes(Source,{{"Count", Int64.Type}}), #"Sorted Rows" = Table.Sort(#"Changed Type1",{{"Date", Order.Ascending}, {"Count", Order.Descending}}), #"Changed Type" = Table.TransformColumnTypes(#"Sorted Rows",{{"Count", Int64.Type}, {"Date", type date}}), Partition = Table.Group(#"Changed Type", {"Date"}, {{"Count", each Table.AddIndexColumn(_, "Index2",1,1), type table}}), #"Expanded Count" = Table.ExpandTableColumn(Partition, "Count", {"SBU", "Count", "Index2"}, {"SBU", "Count.1", "Index2"}), #"Changed Type2" = Table.TransformColumnTypes(#"Expanded Count",{{"SBU", type text}, {"Count.1", Int64.Type}, {"Index2", Int64.Type}}) in #"Changed Type2"
Gracias por la ayuda @ v-juanli-msft