Compare dinámicamente instantáneas: antes y después

Un usuario Pregunto ✅

michaelsh

Tengo una tabla de instantáneas.

Para cada empleado tengo un atributo (departamento, gerente, rango de salario, puesto, etc.) y para cada atributo, tengo su valor.

Quiero que mis usuarios elijan 3 cosas de las segmentaciones:

1. Una instantánea de la fecha,

2. Otra instantánea para comparar,

3. Un atributo

Y quiero que mis resultados sean una tabla que muestre cuántos empleados «se movieron» de un valor de atributo a otro entre las instantáneas, como se muestra a continuación:

¿Cómo puedo hacer esto de forma dinámica?

https://1drv.ms/x/s!AoP_9ampPIT7-ykdCeSDHqZeb8Zn?e=fhAnrX

Captura de pantalla 2020-12-07 074934.png

michaelsh

Crossjoin! ¡Veo! Gracias, @ v-stephen-msft

¿Hay alguna manera de hacer que funcione con alguna medida DAX sin crear estas tablas de unión cruzada?

Tengo miles de valores y atributos en mi escenario del mundo real …

Podría crear algunas tablas desconectadas para la medida de atributos distintos para comparar, pero la unión cruzada de la tabla de hechos me parece pesada …

¿Algunas ideas?

En respuesta a michaelsh

Hola @michaelsh,

Según lo que he aprendido, parece difícil prescindir de creando estas tablas de unión cruzada.

Lo pensé durante mucho tiempo antes de que se me ocurriera la unión cruzada.😁

Atentamente,

Stephen Tao

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

michaelsh

En respuesta a v-stephen-msft

¡Gracias, @ v-stephen-msft!

Aprecio tu ayuda.

Si nadie se presenta con la idea de la medida dinámica, marcaré la suya como una solución.

En respuesta a michaelsh

Hola @michaelsh,

Perdón por molestarte …

Marque mi respuesta como solución. Muchísimas gracias.

Atentamente,
Stephen Tao

michaelsh

En respuesta a v-stephen-msft

De hecho, tengo una solución alternativa: dinámica, pero aún no la he probado.
M1 = VAR vSelectedDateBefore = SELECTEDVALUE (SnapshotDateBefore[SnapshotDate], MIN (SnapshotDateBefore[SnapshotDate] )) VAR vSelectedDateAfter = SELECTEDVALUE (SnapshotDateAfter[SnapshotDate], MAX (SnapshotDateAfter[SnapshotDate] )) REGRESAR COUNTROWS (FILTRO (ADDCOLUMNS (VALUES (Data[Employee] ), «cBeforeFl», CALCULATE (NOT (ISEMPTY (Data)), Data[SnapshotDate] = vSelectedDateBefore, Datos[AttributeValue] EN VALORES (DepartamentoAntes[AttributeValue] )), «cAfterFl», CALCULATE (NOT (ISEMPTY (Data)), Data[SnapshotDate] = vSelectedDateAfter, Datos[AttributeValue] EN VALORES (Departamento después[AttributeValue] ))), [cBeforeFl] && [cAfterFl] ))

Hola @michaelsh,

1. Cree tres tablas calculadas.

After =
SELECTCOLUMNS (
    'Table',
    "After", [Attribute Value],
    "AfterEmployee", [Employee],
    "AfterDate", [Snapshot Date],
    "AfterAttribute", [Attribute]
)

18.png

Before =
SELECTCOLUMNS (
    'Table',
    "Before", [Attribute Value],
    "BeforeEmployee", [Employee],
    "BeforeDate", [Snapshot Date],
    "BeforeAttribute", [Attribute]
)

19.png

Table 2 =
FILTER (
    CROSSJOIN ( 'After', 'Before' ),
    [AfterEmployee] = [BeforeEmployee]
        && [BeforeAttribute] = [AfterAttribute]
)

20.png

2. Cree imágenes de la siguiente manera.

21.png

Puedes consultar más detalles desde aquí.

Atentamente,

Stephen Tao

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Deja un comentario

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