Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

¿Utiliza SELECTEDVALUE para devolver 1 valor de 1 columna basado en un campo de clave compartida a otra tabla?

Hola a todos

Tenemos un campo clave llamado DEPARTAMENTO en tres tablas: una tabla de referencia y dos tablas de hechos diferentes.

La tabla de referencia es solo una lista de cada DEPARTAMENTO único.

La primera tabla de hechos es una lista de cada PROYECTO y su DEPARTAMENTO correspondiente, es decir, una fila por proyecto, pero varios proyectos por DEPARTAMENTO.

La tabla de datos de seconf es una lista de cada DEPARTAMENTO único y el "porcentaje" que se le cobra a DEPARTAMENTO por algo.

Por ejemplo:
Tabla de referencia:

DPT1
DPT2
DPT3

Tabla de hechos #1:

DPT15%
DPT210%

DPT3

20%

Tabla de hechos #2

PROYECTO 1DPT 1
PROYECTO 2DPT 1
PROYECTO 3DPT 2
PROYECTO 4DPT 2

En la pestaña de informe, me gustaría tener una segmentación de datos/filtro que se rellene con el DEPARTAMENTO de la TABLA DE REFERENCIA, y cada fila un PROYECTO de la tabla de hechos #2, más otra columna para cada fila del proyecto con el PORCENTAJE de la tabla de hechos #1 que el proyecto debe cobrar en función de su departamento.

Creo que debería ser capaz de lograr esto con SELECTEDVALUE. ¿Puede la comunidad ayudarme a llegar allí? No puedo entender la gramática exacta para hacer que esto funcione, pero se siente totalmente posible.

Resultado final deseado:
Segmentación de datos con menú desplegable de departamento de selección única de la tabla REFERENCIA.
Tabla con:

PROYECTO 1DPT 15%
PROYECTO 2DPT 15%
PROYECTO 3DPT 210%
PROYECTO 4DPT 210%
9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

¡¡¡Gracias!!! ¡¡Funcionó!! (Saqué la declaración de filtro después del retorno, porque nuestro modelo de datos es extraño) pero el cálculo y el valor seleccionado funcionaron muchas gracias!!!!!!!!! @danextian

Syndicate_Admin
Administrator
Administrator

VAR __DPT =
    SELECTEDVALUE ( reference[DPT] )

__DPT es una variable ya que hay VAR antes de ella. Le asigné SELECTEDVALUE ( reference[DPT] ) ya que no quería escribirlo repetidamente.

Syndicate_Admin
Administrator
Administrator

Gracias @danextian ! ¡Esto parece que funcionará! Pero aún no puedo probarlo debido a una cosa que no entiendo. Cuando usas "__DPT", ¿a qué se refiere? No estoy familiarizado con ese guión bajo y gramática. ¿Con qué lo rellenaría?

PD en respuesta a su pregunta, necesitamos hacer una tabla de proyectos solo CIT. De lo contrario, un proyecto que se asigna a un solo departamento cobra el 100% de las horas a ese departamento. Es solo para proyectos CIT donde al departamento se le cobra solo un porcentaje del total de horas. ¡Así que tu primera fórmula es la que necesitamos!

Syndicate_Admin
Administrator
Administrator

@alicek

La primera fórmula siguiente coincidirá con lo que está en Visual2. Pero tengo curiosidad por saber por qué no hay DPT1 en su resultado esperado cuando seleccionó DPT1 y para eso hay otra fórmula.

Percent = 
VAR __DPT =
    SELECTEDVALUE ( reference[DPT] )
RETURN
    IF (
        SELECTEDVALUE ( table2[DPT] ) = "CIT",
        CALCULATE ( MAX ( table1[Percent] ), FILTER ( table1, table1[DPT] = __DPT ) )
    )
Percent2 = 
VAR __DPT =
    SELECTEDVALUE ( reference[DPT] )
RETURN
    IF (
        SELECTEDVALUE ( table2[DPT] ) = "CIT",
        CALCULATE ( MAX ( table1[Percent] ), FILTER ( table1, table1[DPT] = __DPT ) ),
        CALCULATE (
            MAX ( table1[Percent] ),
            FILTER ( table1, table1[DPT] = __DPT ),
            FILTER ( table2, table2[DPT] = __DPT )
        )
    )

danextian_0-1687911767513.png

Syndicate_Admin
Administrator
Administrator

Hola @Ashish_Mathur y @danextian ! Muchas gracias por sus dos respuestas. Pido disculpas, pensé que estaba ayudando simplificándolo, pero veo que eso causó confusión. He reescrito para entrar en más detalles. Por favor, hágamelo saber si tiene preguntas. La descripción original era técnicamente correcta, pero era confusa porque parecía ser un error para los lectores.

Syndicate_Admin
Administrator
Administrator

Proporcione datos de muestra que sean una representación de su caso de uso y, con esos datos de muestra, el resultado que espera.

Syndicate_Admin
Administrator
Administrator

Hola

Falta información. No veo ninguna referencia a CIT en las 3 tablas que compartiste en tu primer post.

Syndicate_Admin
Administrator
Administrator

¡¡Gracias!! De hecho, es el resultado que queríamos. Estaba tratando de simplificarlo, pero básicamente, de hecho, en la tabla # 2, algunos de los proyectos están asociados con un proyecto general llamado CIT. Y tenemos la Tabla de Hechos # 2, que representa el porcentaje que se cobra a cada departamento si se trata de un proyecto CIT. Entonces, en la tabla final, queremos mostrar todos los proyectos que son proyectos técnicos de CIT, pero mostrar el porcentaje que sus horas totales deben facturarse a cada departamento. ¡No sé si eso cambia tu respuesta en absoluto!

Vamos a probar su increíble solución y nos pondremos en contacto con usted si funciona o no!!! ¡¡¡Muchas gracias!!!

Syndicate_Admin
Administrator
Administrator

@alicek ,

El resultado final deseado es confuso ya que los proyectos 3 y 4 son ambos dept2 en su tabla de hechos # 2 pero dept1 en su resultado final. Aparte de eso, por favor intente esto:

Percent = 
CALCULATE (
    MAX ( 'Fact1'[Percent] ),
    FILTER ( 'Fact1', 'Fact1'[DPT] = SELECTEDVALUE ( DPT[DPT] ) )
)

danextian_0-1687396357687.png

Si esos proyectos bajo DPT2 deben tener 10%, simplemente puede crear una relación entre las tablas Fact1 y 2 o usar la siguiente medida:

Percent2 = 
CALCULATE (
    MAX ( 'Fact1'[Percent] ),
    FILTER ( 'Fact1', 'Fact1'[DPT] = SELECTEDVALUE ( Fact2[DPT] ) )
)

danextian_1-1687396641217.png

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

August Carousel

Fabric Community Update - August 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors