Valores de alias usando la selección de la misma tabla

Un usuario Pregunto ✅

Shawnee

Hola a todos,

He estado buscando una solución a este problema durante bastante tiempo y no he tenido suerte hasta la fecha.

Básicamente lo que quiero lograr es lo siguiente:

Cuando se selecciona el valor de la segmentación, quiero que se muestre como la selección en una tabla y todos los demás valores se muestren como un alias para que solo sepa quién es el valor seleccionado, pero no los otros valores.

ejemplo:

Shawnee_0-1600328309522.png

El valor de alias para cada uno está en la misma tabla de valores, por lo que, por ejemplo, los datos de back-end se ven así:

Shawnee_1-1600328460080.png

Entonces, lógicamente, si se selecciona la cortadora «Manzanas», todas las demás frutas muestran sus respectivos alias, por lo que si se selecciona mostrar fruta, si no, mostrar Alias.

Espero que esto esté claro, espero que haya una fórmula DAX inteligente con la que alguien pueda ayudarme.

Agradeciendotelo de antemano.

MFelix

En respuesta a Shawnee

Hola @Shawnee,

Crea una tabla con descuento con frutas y alias:

SELECTED_AXIS =
UNION (
    ADDCOLUMNS ( DISTINCT ( Alias[Fruit] ); "Type"; "Fruit" );
    ADDCOLUMNS ( DISTINCT ( Alias[Alias] ); "Type"; "ALIAS" )
)

Agregue la siguiente medida:

Total_Axis = 
IF (
    HASONEVALUE ( SELECTED_AXIS[Fruit] );
    SWITCH (
        TRUE ();
        SELECTEDVALUE ( SELECTED_AXIS[Fruit] ) IN VALUES ( Alias[Fruit] )
            && SELECTEDVALUE ( SELECTED_AXIS[Type] ) = "Fruit";
            CALCULATE (
                SUM ( 'Values'[Value] );
                FILTER (
                    ALL ( Alias[Fruit] );
                    Alias[Fruit] = SELECTEDVALUE ( SELECTED_AXIS[Fruit] )
                )
            );
        NOT ( SELECTEDVALUE ( SELECTED_AXIS[Fruit] ) IN VALUES ( Alias[Alias] ) )
            && SELECTEDVALUE ( SELECTED_AXIS[Type] ) = "Alias";
            CALCULATE (
                SUM ( 'Values'[Value] );
                FILTER (
                    ALL ( Alias[Alias]; Alias[Fruit] );
                    Alias[Alias] = SELECTEDVALUE ( SELECTED_AXIS[Fruit] )
                )
            );
        BLANK ()
    );
    CALCULATE ( SUM ( 'Values'[Value] ); ALL ( 'Alias'[Fruit] ) )
)

Ahora cree la tabla y el gráfico usando la columna SELECTED_AXIS y Total para los valores, tenga en cuenta que si usa una matriz, el cálculo total puede necesitar algunos ajustes:

slicers_alias.png

Verifique la conexión del archivo PBIX.

MFelix

Hola @Shawnee,

  • Agregue un índice en la tabla de alias.
  • Crea una tabla con las frutas para la selección de la cortadora.
  • Agregue la siguiente medida:
Fruit Alias = 
IF (
    SELECTEDVALUE ( 'Values'[Fruit] ) in VALUES(  Slicer[Fruit] );
    MAX ( 'Values'[Fruit] );
    LOOKUPVALUE ( Alias[Alias]; Alias[Fruit]; SELECTEDVALUE ( 'Values'[Fruit] ) )
)

Ahora cree la visualización de la tabla usando el índice tiene su referencia:

slicer_selection.gif

Verifique el archivo PBIX adjunto.

Shawnee

En respuesta a MFelix

Hola @MFelix,

Esta solución no funciona del todo para lo que necesito, ya que debe haber una relación directa con el valor de la segmentación, ya que filtra todo mi informe. ¿Hay alguna forma de hacer esto creando una relación entre la cortadora y la tabla principal donde esta solución todavía funciona?

Además, necesito poder usar esta es una matriz visual y no estoy seguro de cómo funcionará esta solución en una matriz, ya que las medidas no se pueden usar como filas.

Sin embargo, gracias por la solución, casi resolvió mi problema.

Saludos cordiales,

Shawnee

MFelix

En respuesta a Shawnee

Hola @Shawnee,

Crea una tabla con descuento con frutas y alias:

SELECTED_AXIS =
UNION (
    ADDCOLUMNS ( DISTINCT ( Alias[Fruit] ); "Type"; "Fruit" );
    ADDCOLUMNS ( DISTINCT ( Alias[Alias] ); "Type"; "ALIAS" )
)

Agregue la siguiente medida:

Total_Axis = 
IF (
    HASONEVALUE ( SELECTED_AXIS[Fruit] );
    SWITCH (
        TRUE ();
        SELECTEDVALUE ( SELECTED_AXIS[Fruit] ) IN VALUES ( Alias[Fruit] )
            && SELECTEDVALUE ( SELECTED_AXIS[Type] ) = "Fruit";
            CALCULATE (
                SUM ( 'Values'[Value] );
                FILTER (
                    ALL ( Alias[Fruit] );
                    Alias[Fruit] = SELECTEDVALUE ( SELECTED_AXIS[Fruit] )
                )
            );
        NOT ( SELECTEDVALUE ( SELECTED_AXIS[Fruit] ) IN VALUES ( Alias[Alias] ) )
            && SELECTEDVALUE ( SELECTED_AXIS[Type] ) = "Alias";
            CALCULATE (
                SUM ( 'Values'[Value] );
                FILTER (
                    ALL ( Alias[Alias]; Alias[Fruit] );
                    Alias[Alias] = SELECTEDVALUE ( SELECTED_AXIS[Fruit] )
                )
            );
        BLANK ()
    );
    CALCULATE ( SUM ( 'Values'[Value] ); ALL ( 'Alias'[Fruit] ) )
)

Ahora cree la tabla y el gráfico usando la columna SELECTED_AXIS y Total para los valores, tenga en cuenta que si usa una matriz, el cálculo total puede necesitar algunos ajustes:

slicers_alias.png

Verifique la conexión del archivo PBIX.

Shawnee

En respuesta a MFelix

¡Gracias! Tu solución funcionó 🙂

Deja un comentario

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