Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Tal vez sea porque es lunes o algo así, pero simplemente no puedo entender lo que pensé que era una cosa simple, pero aquí estoy, unas horas más tarde ...
Problema:
Tengo dos tablas sin relación activa
La primera tabla es mi tabla de hechos que contiene todos los datos relacionados con las horas perforadas
FactTable
Fecha | Horas | EmployeeId |
29.12.2020 | 8 | A |
30.12.2020 | 8 | A |
31.12.2020 | 4 | A |
1.1.2021 | 4 | A |
2.1.2021 | 8 | A |
Mi segunda tabla tiene información sobre las tasas salariales por empleado con una fecha de inicio determinada como la siguiente:
Tabla salarial
EmployeeId | SalaryFromDate | Tasa |
A | 1.1.2020 | 50 |
A | 1.1.2021 | 100 |
B | 1.1.2009 | 60 |
Mi resultado deseado
Usando la medida Dax, quiero calcular el costo por cada hora que realmente se perfora y se trabaja.
Estoy tratando de usar esto, por ejemplo.
Rate_Hourly =
VAR _salaryfromdate =
SELECTEDVALUE ( SalaryTable[SalaryTableFromDate] )
RETURN
CALCULATE (
SUM ( SalaryTable[hourlySalaryTable] ),
FILTER (
FactTable,
FactTable[date] >= _salaryfromdate
&& FactTable[date] <= TODAY ()
)
)
Pero esto solo me da la suma de todas las tarifas por hora.
¿Cómo puedo asegurarme de encontrar la tarifa por hora correcta dentro del rango de fechas dado por FactTable y compararla con SalaryTable?
Amable
Probé esto y ver si funciona para ti
No se crean relaciones
Medir
Rate_Hourly =
var _Rate = MAXX(
FILTER( SalaryTable, SalaryTable[EmployeeID] = SELECTEDVALUE(FactTable[EmployeeID])
&& SalaryTable[SalaryFromDate] <= SELECTEDVALUE(FactTable[Date]))
, SalaryTable[Rate]
)
return _Rate
FYI: Prefiero tener una columna calculada que medir si es un gran conjunto de datos
...
@sevenhills ¡Gracias por la pronta respuesta y por tomarse el tiempo para ayudar!
He implementado con éxito el código DAX y funciona. Sin embargo, se rompe en otro nivel granular cuando no estoy mirando las fechas. Vea cómo el total no se suma
¿Puedo hacer que esto funcione de alguna manera sin tener que usar ISINSCOPE() u otras funciones similares?
¿O debería simplemente hacer lo que mencionaste y usar una columna?
Atentamente
Por favor, ¿puede proporcionar lo que se espera de salida en su escenario superior (como una maqueta)
Difícil de visualizar a veces...
El resultado esperado es encontrar la tarifa por hora y multiplicar ese número con la cantidad de horas trabajadas. Eso debería definir el costo. Sin embargo, necesito poder ver el costo, independientemente de si estoy mirando a un empleado, dos o todos.
Ahora que lo pienso, ¿tal vez sea más fácil dejar que PQ calcule el costo en la tabla de hechos? Por lo tanto, cada vez que se registra una hora, se calcula otra columna para el costo detrás de esa hora.
Si mi análisis de su problema es incorrecto, entonces necesito más detalles.
Opcionalmente, puedes echar un vistazo
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.