Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola
He leído numerosos hilos en calcular días laborables, pero todavía no está consiguiendo él trabajando en el momento..
Tengo:
Ahora algunas filas devuelven valores que parecen estar bien, y algunas filas están en blanco.
Las filas en blanco están en casos donde las fechas que se miden son las mismas (en cuyo caso esperaría un 0), pero también en casos en los que difieren (en cuyo caso "simplemente" necesito un resultado).
¿Alguien puede ayudarme con esto?
Gracias por el apoyo.
ps., tengo miedo de que no puedo compartir el .pbix...
Solved! Go to Solution.
@v-robertq-msft , creo que lo he encontrado!
La tabla de fechas y la columna de días laborables son iguales, pero el delta de días laborables se ha convertido en el siguiente:
como puede ver, el único envío retrasado en el resumen ahora obtiene un número positivo. ¡Debería poder usar esto para medir los envíos retrasados dentro de una tolerancia que finalmente obtenga el rendimiento basado en días hábiles! :):):)
Ahí, @tqn626
Según su descripción de los datos de ejemplo, creé otras dos filas de datos y transformé la fórmula DAX para quitar el valor en blanco:
Workdays Count =
IF(
[Start Date]<=[End Date],
CALCULATE(SUM('Date'[Isworkday]),FILTER(ALL('Date'),'Date'[Date]>=EARLIER('Fact table'[Start Date])&&'Date'[Date]<=EARLIER('Fact table'[End Date]))),
CALCULATE(SUM('Date'[Isworkday]),FILTER(ALL('Date'),'Date'[Date]<=EARLIER('Fact table'[Start Date])&&'Date'[Date]>=EARLIER('Fact table'[End Date]))))
Y puede obtener el resultado esperado:
Puede descargar mi archivo pbix de prueba a continuación
¡Muchas gracias!
Saludos
Equipo de apoyo a la comunidad _Robert Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
hola
De acuerdo con su descripción en detalle, puedo entender aproximadamente su requisito ahora, y actualicé mi método, puede echar un vistazo y verificar si esto puede ser útil:
Esta es la tabla de hechos de prueba que creé:
Date = CALENDARAUTO()
Isworkday =
IF(WEEKDAY([Date],2)>5,0,1)
Workdays Count =
CALCULATE(SUM('Date'[Isworkday]),FILTER(ALL('Date'),'Date'[Date]>=EARLIER('Fact table'[Start Date])&&'Date'[Date]<=EARLIER('Fact table'[End Date])))
Y puedes obtener lo que quieras, así:
Puede descargar mi archivo pbix de prueba a continuación
¡Muchas gracias!
Saludos
Equipo de apoyo a la comunidad _Robert Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hay @v-robertq-msft ,
Ahora bien, ese es un enfoque que aún no he probado :).
Me pongo a esto hoy y hacerle saber si funciona.
Solo por curiosidad, ¿esa tabla de fechas está marcada como la tabla de fechas?
¿Y por qué no hay relación entre las dos tablas?
Se pondrá en marcha a usted a.s.a.p..
Hay @v-robertq-msft ,
Lo probé de inmediato :), pero todavía me estoy topando con algo aquí.
Aquí están mis columnas:
fecha:
Identificador de día laborable:
Este bit es claro y funciona bien.
pero....
Cuando la fecha de envío es posterior a la fecha de promesa, el resultado parece correcto.
Sin embargo, cuando el envío es anterior a la fecha de promesa, el resultado está vacío. Probablemente porque la función sum no puede encontrar nada para algunos en función de las condiciones.
Pero la realidad es (fortuantemente) que la mayoría de los envíos se entregan a tiempo, por lo que también se necesitan valores negativos para determinar qué tan temprano se entrega el envío. Usted puede imaginar que el cliente no quiere sus productos demasiado pronto. También tenemos un límite para eso.
Parhaps Puedo mezclar su fijar en un countrows en vez de una suma y ver si aquello trabajos.
@v-robertq-msft , creo que lo he encontrado!
La tabla de fechas y la columna de días laborables son iguales, pero el delta de días laborables se ha convertido en el siguiente:
como puede ver, el único envío retrasado en el resumen ahora obtiene un número positivo. ¡Debería poder usar esto para medir los envíos retrasados dentro de una tolerancia que finalmente obtenga el rendimiento basado en días hábiles! :):):)
hola
De acuerdo con su descripción, puedo entender aproximadamente su requisito, creo que simplemente puede lograr esto usando una tabla de calendario, una columna calculada y una medida:
Crear una tabla de calendario:
Date = CALENDAR(DATE(2021,1,1),DATE(2021,12,31))
Cree una columna calculada:
Isworkday =
IF(WEEKDAY([Date],2)>5,0,1)
A continuación, cree una medida:
Count of workdays =
CALCULATE(SUM('Date'[Isworkday]),ALLSELECTED('Date'))
A continuación, puede crear una segmentación de datos y un gráfico de tarjetas para colocarlos de la siguiente manera:
Y puedes conseguir lo que quieras.
Puede descargar mi archivo pbix de prueba a continuación
¡Muchas gracias!
Saludos
Equipo de apoyo a la comunidad _Robert Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Estaba buscando algo similar y su solución aquí funciona bien para los propósitos de mi problema.
Lo único, ¿me gustaría añadir en esto los días festivos?
Saludos
Hay @v-robertq-msft ,
Gracias por su ayuda.
Crear una tabla de calendario:
Date = CALENDAR(DATE(2021,1,1),DATE(2021,12,31))
Esta parte es clara. Utilicé la función automática de calendario, pero eso no debería hacer ninguna diferencia.
Cree una columna calculada:
Isworkday =
IF(WEEKDAY([Date],2)>5,0,1)
Esta parte también es clara.
Es posible que la siguiente parte no funcione completamente.
A continuación, cree una medida:
Count of workdays =
CALCULATE(SUM('Date'[Isworkday]),ALLSELECTED('Date'))
A continuación, puede crear una segmentación de datos y un gráfico de tarjetas para colocarlos de la siguiente manera:
Sin embargo, entiendo lo que has hecho.
Pero no estoy tratando de calcular los días laborables basados en una segmentación de datos, estoy tratando de calcular los días laborables entre dos fechas en una tabla de hechos separada.
Para la mayoría de las fechas parece funcionar, sin embargo, cuando las fechas se extienden a lo largo del año, el resultado es inexacto.
¿Está esto claro para usted? o puedo hacer cualquier otra cosa para elaborar?
gracias.
Allí, @PaulusD
De acuerdo con su descripción e imágenes de muestra, puedo' averiguar cuál es la lógica de su columna calculada [WorkDaysCounter], ¿por qué ha navegado por los números? ¿Te gustaría explicarlo en detalle?
Además, creo que es mejor si puede cargar el archivo pbix de prueba sin datos confidenciales o algunos datos de muestra para que podamos ayudarlo de antemano.
Cómo obtener una respuesta rápida a su pregunta
¡Muchas gracias!
Saludos
Equipo de apoyo a la comunidad _Robert Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @v-robertq-msft ,
La idea es que estemos midiendo el recuento de días laborables entre dos fechas. En base a esto, podemos medir si un envío se entregó dentro del plazo de entrega contractual.
Estoy bastante seguro de que el enfoque que he tomado está en línea con las mejores prácticas para esto (basado en la información que se encuentra en la comunidad y la web).
Si consigo que esto funcione, podríamos incorporar las fiestas nacionales y terminar con una verdadera medición neta en términos de rendimiento.
Me treid dos enfoques.
Uno donde un retorno un valor de 1 (para días laborables) y un 0 para fines de semana. En el cálculo cuento los resultados totales entre fechas.
La segunda es que compruebo si la fecha es un día laborable, devolviendo verdadero para días laborables y falso para fines de semana. En el cálculo utilicé countrows filtrando en valores verdaderos.
ninguno de estos proporcionar los resultados que veo otros generando y yo justo cant averiguar fuera donde i'm yendo mal 😞
Cualquier otro consejo que pudiera probar es bienvenido, todavía no he podido resolver esto.
Como se mencionó, estoy trabajando con una tabla de fechas separada.
gracias.
@lbendlin como @PaulusD mencionó, ya tiene una dimensión de calendario y agrega este día de la semana en esa dimensión. Creo que va por buen camino.
@PaulusD Proporcione más detalles en qué caso no está devolviendo los datos. Veo que está filtrando las dimensiones del calendario de la tabla SO_DEL que dará solo las fechas de la tabla Calendario que existen en la tabla SO_DEL, suponiendo que estas dos tablas tengan una relación. ¿Alguna razón por la que estás haciendo eso?
Consulte mi última entrada de blog comparando el cliente seleccionado con otros clientes N principales | PeryTUS Me gustaría ❤ Felicitaciones si mi solución ayudó. 👉 Si puede pasar tiempo publicando la pregunta, también puede hacer esfuerzos para dar Felicitaciones a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡Visítenos en https://perytus.com, su ventanilla única para proyectos, formación y consultoría relacionados con Power BI.⚡
No @parry2k ,
Por lo que he leído, debería contar las filas de la tabla de fechas (tabla de dimensiones), donde la fecha de inicio y la fecha de finalización de la acción countrows están determinadas por las fechas pasadas desde la tabla de hechos.
Para algunas fechas esto funciona bien:
pero para otras fechas se pierde por completo el ápice:
ahora la fecha introducida en la fuente es incorrecta, pero el punto es que los resultados reflejan el número de días a lo largo de los años entre las fechas.
La tabla de fechas se construye utilizando la función calendarauto, por lo que estoy bastante seguro de que todas las fechas desde la más antigua encontrada hasta la última encontrada están en esa tabla.
Necesito ser capaz de confiar en el forumula cuando i'm midiendo rendimiento basó en fechas.
No hagas eso (tratando de usar la función de día de la semana). Utilice una tabla de calendario externa adecuada que cree y mantenga manualmente y que tenga los días laborables reales para su escenario, excluyendo los días festivos, etc.