The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
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:
DPT1 | 5% |
DPT2 | 10% |
DPT3 | 20% |
Tabla de hechos #2
PROYECTO 1 | DPT 1 |
PROYECTO 2 | DPT 1 |
PROYECTO 3 | DPT 2 |
PROYECTO 4 | DPT 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 1 | DPT 1 | 5% |
PROYECTO 2 | DPT 1 | 5% |
PROYECTO 3 | DPT 2 | 10% |
PROYECTO 4 | DPT 2 | 10% |
¡¡¡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
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.
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!
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 )
)
)
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.
Proporcione datos de muestra que sean una representación de su caso de uso y, con esos datos de muestra, el resultado que espera.
Hola
Falta información. No veo ninguna referencia a CIT en las 3 tablas que compartiste en tu primer post.
¡¡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!!!
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] ) )
)
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] ) )
)
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.