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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
nosaj03
Helper II
Helper II

Creación de una medida basada en el día anterior

¡Hola a todos!

Tengo una tabla de ventas de empleados por día por categoría de artículo y tiempo total en venta

Quiero crear una medida que muestre el tiempo de evitación de las ventas por empleado del día anterior en función del día actual.

Ejemplo

FechaEmpleadoGrupoGrupo de artículosVentasHora
5/19/2020JoeTecnologíaIos3819
5/19/2020JoeTecnologíaAndroid112247
5/19/2020JoeTecnologíaWindows3111056
5/19/2020JoeTecnologíaJuego1176
5/18/2020JoeTecnologíaIos4919
5/18/2020JoeTecnologíaAndroid15254
5/18/2020JoeTecnologíaWindows2612001
5/18/2020JoeTecnologíaJuego14201

Quiero averiguar el tiempo promedio para Joe en 5/18 por lo que la fórmula es sum(Time)/sum(sales)

He estado usando la siguiente fórmula

Calculate(divide(sum(Time),sum(Sales),0),filter(date ? now()-1)) y no devuelve nada.

Otras veces su me da el "La expresión se refiere a varias columnas. No se pueden convertir varias columnas en un valor escalar" o el error Dividir por cero.

Estoy atascado aquí. Cualquier ayuda sería muy apreciada.

7 REPLIES 7
V-pazhen-msft
Community Support
Community Support

@nosaj03

You debe usar Today() en lugar de Now(), porque Now()-1 devuelve la hora actual-1 segundo, no el día anterior. Y para la muestra que proporcionó, puede probarlo reemplazando Today() por Date(2020,5,19) para comprobar el promedio de 5/18.

Measure Calculate(divide(sum([Time ]),sum([Sales]),0),filter('Table',[Date]= TODAY()-1))

Equipo de Apoyo Comunitario Paul Zheng _
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@V-pazhen-msft ¡Gracias! Esto funcionó perfectamente!!!!

amitchandak
Super User
Super User

@nosaj03 , Para evitar dividir por 0 utilice dividir . que has hecho correctamente

Calculate(divide(sum(Time),sum(Sales),0),filter(Table,[date] - Today()-1))

Esto podría no funcionar si se selecciona la fecha, entonces usted tiene que utilizar todos los
Calculate(divide(sum(Time),sum(Sales),0),filter(all(Table),[date] - Today()-1))

Mejor usar una tabla de fechas


Last Day Non Continous ? CALCULATE(divide(sum(Time),sum(Sales),0),filter(all('Date'),'Date'[Date] ?MAXX(FILTER(all('Date'),'Date'[Date]<max('Date'[Date])),Table['Date'])))
Día detrás de las Ventas: CALCULATE(divide(sum(Time),sum(Sales),0),dateadd('Date'[Date],-1,Day))

Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Vea si mi seminario web sobre Time Intelligence puede ayudar: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...


Aprecia tus Felicitaciones.

@amitchandak gracias por la perspicacia. Tengo una tabla de fechas que he creado.

Cuando utilizo la fórmula que proporcionó a continuación

Día detrás de las Ventas: CALCULATE(divide(sum(Time),sum(Sales),0),dateadd('Date'[Date],-1,Day))

Todavía me está dando el total basado en toda la mesa y no el día anterior.

@nosaj03 , puede compartir la captura de pantalla del problema. Esto debería haber funcionado. Espero que esté utilizando la fecha y cualquier otra columna relacionada con la fecha de la tabla de fechas

@amitchandak usando la fórmula exacta que me dio el tiempo promedio para 5/18 debe ser 227

Si aún así sigues teniendo problemas, la página de ayuda de 264.

La tabla de fechas que tengo utiliza Date como en la fórmula, pero me da el promedio de todos los días y no el día anterior

parry2k
Super User
Super User

@nosaj03 Como práctica recomendada, agregue la dimensión de fecha en el modelo y utilícela para los cálculos de inteligencia de tiempo y los cálculos de inteligencia de tiempo. Hay muchos mensajes sobre cómo agregar la dimensión de fecha y a continuación está el enlace a unos pocos. Una vez agregada la dimensión de fecha, márquela como tabla de fechas en las herramientas de tabla.

https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/
https://radacad.com/create-a-date-dimension-in-power-bi-in-4-steps-step-1-calendar-columns

y luego puedes usar algo como esto

Previous Day SAles = 
CALCULATE ( SUM ( Table[SAles] ), DATEADD ( CalendarTable[Date], -1, DAY ) )

Me gustaría elogiossi mi solución me ayudó.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para darle a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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