Cree una columna / medida de índice dinámico usando DAX

Un usuario Pregunto ✅

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)

Capture.PNG

* 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

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

12.png

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.

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])))

1.png

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.

Capture.JPG

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *