Agregar columna de índice calculado por DAX

Un usuario Pregunto ✅

myti

Queridos amigos,

Tengo una tabla como la siguiente, estaría feliz si me guiara sobre cómo puedo agregar la columna de índice calculada a la tabla, una Nueva columna mediante una fórmula DAX.

Gracias,

Myti

Capture1.JPG

En respuesta a myti

@myti

Intente crear una columna calculada en DAX.

index = 
RANKX (
    FILTER (
        yourTable,
        EARLIER ( yourTable[CC] ) = yourTable[CC]
            && EARLIER ( yourTable[Type] ) = yourTable[Type]
            && yourTable[Cluster] = yourTable[Cluster]
            && EARLIER ( yourTable[Status] ) = yourTable[Status]
    ),
    yourTable[Avg-Position],
    ,
    ASC
)

Capture.PNG

ericet

Hola, todos,

Necesito agregar un índice simple basado en 0 a esto GENERATESERIES

Índice de 0 a 36.

Necesito este índice para poder unirme con otra tabla.

¿Alguien me puede ayudar con esto?

Serie de fecha de generación de muestra =
GENERATESERIES (
FECHA (2020,1,1)
, FECHA (2023,1,2)
, 31
)
Eric (Montreal, Canadá)

ericet

En respuesta a ericet

Encontré la solución, el problema era que estaba generando una tabla dinámica con GENERATESERIES pero no podía unirla con otra tabla en mi modelo. Necesitaba una columna común para poder unirme.
La solución es RANKX, ya que estas son fechas y están en el orden correcto, agregué una columna con RANKX.

Nueva columna
Serie de fecha de generación de muestra =
GENERATESERIES (
FECHA (2020,1,1)
, FECHA (2023,2,2)
, 31)

Luego RANKX para generar el índice,
Índice = RANKX (ALL (‘Serie de fechas de generación de muestra’), ‘Serie de fechas de generación de muestra'[Value].[Date],, ASC)
porque necesitaba un índice base 0, hice una nueva columna = ‘Sample Gen Date Series'[Index] – 1

Eso es todo
Eric

omarevp

@myti

Hola.

¿Podría decirme cómo se crea la columna Posición media? Necesito algo como eso.

¡Gracias!

Greg_Deckler

¿Puede explicar la mecánica detrás de esa columna de índice? Si lo estoy leyendo correctamente, comienza en 1 y aumenta hasta que el «Estado» cambia y luego comienza de nuevo en 1 y así sucesivamente.

Mi sensación es que tendría más éxito implementando esto en «M» en lugar de DAX.

myti

En respuesta a Greg_Deckler

Gracias @Greg_Deckler por su rápida respuesta.

Mi idea es que para agregar el índice en función del valor de la posición media. El cambio no solo se basa en el «estado». Se basa en las cuatro primeras columnas.

GraciasCapture1.JPG

CheenuSing

En respuesta a myti

@myti

Prueba los siguientes pasos

1. Vaya a editQuery de la tabla.

2. Vaya a la pestaña Agregar columna.

3. Agregar columna de índice

4. Cambie el nombre de esa columna a ColIndex.

5. Cierre EditQuery.

6. Haga clic con el botón derecho en su tabla

7. Haga clic en Nueva columna.

8. Pegue el siguiente código

DesiredIndex = CALCULATE (COUNT ([ColIndex]), TODOS (‘Tabla2’),

FILTRO (‘Tabla2’, [ColIndex] <= ANTES ([ColIndex])),

FILTRO (‘Tabla2’, [CC]= ANTES ([CC])),

FILTRO (‘Tabla2’, [Type]= ANTES ([Type])),
FILTRO (‘Tabla2’, [Cluster]= ANTES ([Cluster])),
FILTRO (‘Tabla2’, [Status]= ANTES ([Status]))
)

Obtendrás el resultado que deseas.

Si esto funciona para usted, acéptelo como solución y proporcione también KUDOS.

Salud

CheenuSing

myti

En respuesta a CheenuSing

@CheenuSing

Gracias a ti por tu solución.

El problema es que la tabla que tengo es una tabla resumida que fue creada por la fórmula DAX en la sección de vista de datos. Por lo tanto, no tengo acceso a mi tabla en el editor de consultas.

Como aconsejó @Greg_Deckler, estoy pensando en recrear las tablas que creé en la vista de datos en la sección del editor de consultas por lenguaje M.

Gracias,

Saludos

Medi

En respuesta a myti

@myti

Intente crear una columna calculada en DAX.

index = 
RANKX (
    FILTER (
        yourTable,
        EARLIER ( yourTable[CC] ) = yourTable[CC]
            && EARLIER ( yourTable[Type] ) = yourTable[Type]
            && yourTable[Cluster] = yourTable[Cluster]
            && EARLIER ( yourTable[Status] ) = yourTable[Status]
    ),
    yourTable[Avg-Position],
    ,
    ASC
)

Capture.PNG

EduSurveys

En respuesta a Eric_Zhang

@Eric_Zhang

¿Cómo haría esto si quisiera hacer un índice calculado para el «estado» en orden cronológico? Entonces, si hubiera fechas asociadas con las diferentes filas, Índice = 1 para la fecha más temprana del estado Bajo y = 3 para la última fecha del estado Bajo.

EduSurveys

En respuesta a EduSurveys

Descubrí mi solución:

FactEnrollment es mi tabla de instantáneas de inscripción cada trimestre.
Término es el nombre del trimestre.
Cada estudiante tiene una fila para cada término que existe, y esto clasificará las entradas de identificación de cada estudiante (ya sea que tengan 10 filas o 6 filas o 3 filas) en orden cronológico por término.
EnrollIndex =
RANKX (
FILTRAR(
‘FactEnrollment’,
EARLIER (‘FactEnrollment'[ID]) = ‘FactEnrollment'[ID]),
‘FactEnrollment'[TERM],
,
ASC
)

PowerQueryFTW

En respuesta a Eric_Zhang

¡Muchas gracias!

Deja un comentario

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