The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hola
He estado luchando con esto por algún tiempo. Tenemos 2 mesas. Uno que tiene registros (workLog) de tiempo de seguimiento y otro que tiene costo/hora (usercost) en fechas específicas. Esto se debe a que el costo de un usuario puede cambiar durante el tiempo. La tabla usecost tiene el identificador del usuario una fecha y hora activada cuando se agrega el nuevo costo se va a utilizar desde este punto en la palabra y el costo del campo.
Lo que estoy haciendo es agregar una columna en el Worklog y agregar esta fórmula. Esto funciona perfectamente cuando el usuario específico solo tiene 1 registro en la tabla UserCost. Lo que necesito es devolver el registro más frist que encuentre. pero usando el filtro como se muestra a continuación. También quería pedir por Worklog(CreatedYear) y Worklog(CreatedMonth).
Solved! Go to Solution.
@Drako - No estoy 100% seguro de que estoy siguiendo, pero ver si esto ayuda. Esto es lo que tengo:
Puede ver mi archivo PBIX aquí. Notará que hice algunos datos de modelado y modelado en Power Query porque no veo cómo obtener los resultados en la forma en que se forman las tablas. Por ejemplo, tener Jan en una columna y 2020 en otra no es muy útil, por lo que creé una fecha para el último día del mes para esa columna, que se puede filtrar y relacionada con una tabla de fechas real. Deberá devolver el origen de datos al archivo Example.xlsx del disco duro para ver el trabajo de Power Query mediante el icono Configuración del origen de datos de la cinta de opciones Inicio de PQ.
Si eso no es lo que espera, ¿puede ser más específico sobre cómo debería funcionar el cálculo?
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHola @Drako ,
Por ejemplo, obtenemos la fecha y hora mínima de cada usuario como condición de filtro y, a continuación, calculamos la columna de costo.
Tratar:
col =
VAR MIN_Date = CALCULATE(MIN('Table'[date]),ALLEXCEPT('Table','Table'[user]))
RETURN IF('Table'[date]=MIN_Date,'Table'[cost])
Si el problema persiste, ¿podría compartir el pbix de ejemplo a través del servicio en la nube como onedrive para la empresa?
Elimine los datos confidenciales antes de cargarlos.
Saludos
Liang
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @V-lianl-msft y @edhans
Todavía no puedo conseguir lo que necesito. He creado un excel con los datos de ejemplo. Consulte un enlace de unidad. También he pegado las mesas aquí por ejemplo.... Lo que creo que falta es algún tipo de MAX cuando consigo más que registro en el filtro, pero no he sido capaz de hacer esto...
Excel: https://1drv.ms/u/s!AvX2iSHtfUKqq8xgaAPqkfs_c8HkWQ?e=K40Mrd
Mesas:
Tabla UserCost | |||
Userid | Costo/Hora | Mes Activo | Año Activo |
1 | $ 10.00 | Enero | 2020 |
1 | $ 15.00 | Mayo | 2020 |
1 | $ 18,50 | Septiembre | 2020 |
2 | $ 5.00 | Enero | 2020 |
2 | $ 6.00 | Junio | 2020 |
3 | $ 22.00 | Enero | 2020 |
3 | $ 25.00 | Septiembre | 2020 |
Tabla WorkLog | ||||||
Userid | WorkHourLog | Fecha | Mes | año | Obtenga CostHour de UserCost basado en el mes/año más cercano | |
1 | 10 | 1 de enero de 2020 | Enero | 2020 | $ 10.00 | Así que lo que esta columna debe obtener es la tarifa por hora más cercana para ese mes de especificidad de la tabla CostHour. He añadido los valores como ejemplo. Por lo tanto, para userID 1 puede ver varias tarifas diferentes. El problema: Si ves la línea 5 si busco el costo ikn el USerCost esto funcionará perfectamente, porque devolverá 1 ROW en la tabla. Pero si vas a la línea 8, entonces cuando aplico USercost[Month] <- Worklok[Month] && Usercost[Year] <- Worklog[Year] devolverá 2 rwos del USerCost. Uno con $10 y el otro por $15, necesito obtener el MAX desde el mes... He probado varias fucnioniones MAX en la fórmula que utilicé sin éxito |
1 | 20 | 1 de febrero de 2020 | Febrero | 2020 | $ 10.00 | |
1 | 40 | 1 de marzo de 2020 | Marzo | 2020 | $ 10.00 | |
1 | 22 | 1 de abril de 2020 | Abril | 2020 | $ 10.00 | |
1 | 33 | 1 de mayo de 2020 | Mayo | 2020 | $ 15.00 | |
2 | 44 | 1 de enero de 2020 | Enero | 2020 | ||
2 | 1 | 1 de febrero de 2020 | Febrero | 2020 | ||
2 | 2 | 1 de marzo de 2020 | Marzo | 2020 | ||
2 | 33 | 2 de junio de 2020 | Junio | 2020 | ||
2 | 55 | 1 de julio de 2020 | Jul | 2020 | ||
1 | 22 | 1 de junio de 2020 | Junio | 2020 | $ 15.00 | |
1 | 77 | 1 de julio de 2020 | Jul | 2020 | $ 15.00 | |
1 | 32 | 1 de agosto de 2020 | Agosto | 2020 | $ 15.00 | |
1 | 46 | 1 de septiembre de 2020 | Septiembre | 2020 | $ 18,50 | |
1 | 2 | 1 de octubre de 2020 | Octubre | 2020 | $ 18,50 | |
3 | 1 | 1 de enero de 2020 | Enero | 2020 | ||
3 | 2 | 1 de septiembre de 2020 | Septiembre | 2020 | ||
3 | 8 | 1 de octubre de 2020 | Octubre | 2020 |
@Drako - No estoy 100% seguro de que estoy siguiendo, pero ver si esto ayuda. Esto es lo que tengo:
Puede ver mi archivo PBIX aquí. Notará que hice algunos datos de modelado y modelado en Power Query porque no veo cómo obtener los resultados en la forma en que se forman las tablas. Por ejemplo, tener Jan en una columna y 2020 en otra no es muy útil, por lo que creé una fecha para el último día del mes para esa columna, que se puede filtrar y relacionada con una tabla de fechas real. Deberá devolver el origen de datos al archivo Example.xlsx del disco duro para ver el trabajo de Power Query mediante el icono Configuración del origen de datos de la cinta de opciones Inicio de PQ.
Si eso no es lo que espera, ¿puede ser más específico sobre cómo debería funcionar el cálculo?
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHola @edhans ,
Te he derribado PBIX y vi tu solución. Es exactamente como lo necesito. Pregunta No uso mich la tabla de fechas que agregó, pero he visto que es muy útil. ¿Cómo creaste esto manualmente? ¿O es su fucntion o algo en power bi para crearlo?
Muchas gracias... funcionó y estoy ajustando mi PwerBI para tener las fechas a medida que agregaste y la fórmula.
Hola @Drako - me alegro de haber podido ayudar. En cuanto a mi tabla de fechas, consulte esta URL - https://bit.ly/DateTableByEd - es 100% generado en Power Query. Hay una explicación completa de cómo funciona, y un enlace a un blog que hice el año pasado que te permitirá convertir la cosa en una tabla de fechas totalmente dinámica que avanzará en el tiempo con nuevos datos a lo largo de los años.
Eso está en mi cuaderno personal de Evernote, así que a menudo lo estoy actualizando y mejorando.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingNo hay ningún @Drako de registro de primer registro: los registros se almacenan, sin embargo, el modelo de datos desea almacenarlos. Mis tablas de fechas casi siempre muestran una fecha de julio primero en la vista Datos como ejemplo, pero las tablas siempre comienzan el 1 de enero.
Debe identificar esa primera fila basada en critera. Por ejemplo:
te ayudaría a empezar. Esto sería una medida. Evito las columnas calculadas tanto como sea posible.
Pero para ayudar realmente, necesitaríamos ver algunos datos con los resultados esperados.
Cómo obtener una buena ayuda rápidamente. Ayúdanos a ayudarte.
Cómo obtener respuestas a su pregunta rápidamente
Cómo proporcionar datos de ejemplo en el foro de Power BI
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHola @edhans
Todavía no puedo conseguir lo que necesito. He creado un excel con los datos de ejemplo. Consulte un enlace de unidad. También he pegado las mesas aquí por ejemplo.... Lo que creo que falta es algún tipo de MAX cuando consigo más que registro en el filtro, pero no he sido capaz de hacer esto...
Excel: https://1drv.ms/u/s!AvX2iSHtfUKqq8xgaAPqkfs_c8HkWQ?e=K40Mrd
Mesas:
Tabla UserCost | |||
Userid | Costo/Hora | Mes Activo | Año Activo |
1 | $ 10.00 | Enero | 2020 |
1 | $ 15.00 | Mayo | 2020 |
1 | $ 18,50 | Septiembre | 2020 |
2 | $ 5.00 | Enero | 2020 |
2 | $ 6.00 | Junio | 2020 |
3 | $ 22.00 | Enero | 2020 |
3 | $ 25.00 | Septiembre | 2020 |
Tabla WorkLog | ||||||
Userid | WorkHourLog | Fecha | Mes | año | Obtenga CostHour de UserCost basado en el mes/año más cercano | |
1 | 10 | 1 de enero de 2020 | Enero | 2020 | $ 10.00 | Así que lo que esta columna debe obtener es la tarifa por hora más cercana para ese mes de especificidad. He añadido los valores como axample. Por lo tanto, para userID 1 puede ver varias tarifas diferentes. El problema: Si ves la línea 5 si busco el costo ikn el USerCost esto funcionará perfectamente, porque devolverá 1 ROW en la tabla. Pero si vas a la línea 8, entonces cuando aplico USercost[Month] <- Worklok[Month] && Usercost[Year] <- Worklog[Year] devolverá 2 rwos del USerCost. Uno con $10 y el otro por $15, necesito obtener el MAX desde el mes... He probado varias fucnioniones MAX en la fórmula que utilicé sin éxito |
1 | 20 | 1 de febrero de 2020 | Febrero | 2020 | $ 10.00 | |
1 | 40 | 1 de marzo de 2020 | Marzo | 2020 | $ 10.00 | |
1 | 22 | 1 de abril de 2020 | Abril | 2020 | $ 10.00 | |
1 | 33 | 1 de mayo de 2020 | Mayo | 2020 | $ 15.00 | |
2 | 44 | 1 de enero de 2020 | Enero | 2020 | ||
2 | 1 | 1 de febrero de 2020 | Febrero | 2020 | ||
2 | 2 | 1 de marzo de 2020 | Marzo | 2020 | ||
2 | 33 | 2 de junio de 2020 | Junio | 2020 | ||
2 | 55 | 1 de julio de 2020 | Jul | 2020 | ||
1 | 22 | 1 de junio de 2020 | Junio | 2020 | $ 15.00 | |
1 | 77 | 1 de julio de 2020 | Jul | 2020 | $ 15.00 | |
1 | 32 | 1 de agosto de 2020 | Agosto | 2020 | $ 15.00 | |
1 | 46 | 1 de septiembre de 2020 | Septiembre | 2020 | $ 18,50 | |
1 | 2 | 1 de octubre de 2020 | Octubre | 2020 | $ 18,50 | |
3 | 1 | 1 de enero de 2020 | Enero | 2020 | ||
3 | 2 | 1 de septiembre de 2020 | Septiembre | 2020 | ||
3 | 8 | 1 de octubre de 2020 | Octubre | 2020 |