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
Syndicate_Admin
Administrator
Administrator

Contar los días laborables de un mes para obtener un promedio

Hola a todos.

Mi intención es calcular el número de días laborables para cada mes y mostrar el número del mes actual para obtener un promedio, por ejemplo.

He creado un informe que realiza un seguimiento del número de líneas procesadas, me gustaría devide automáticamente el número de líneas procesadas con el número de días laborables para julio . Puedo hacer esto manualmente = Countoflines / 22 pero tendría que cambiar el número de días laborables cada mes. ¿Será posible tener esto automatizado para que cuando cambiemos a agosto cambie automáticamente?

1 ACCEPTED SOLUTION

No @carlosagarcia,

Esta es una expresión de columna calculada que se puede usar para calcular los días laborables del mes actual (excepto el fin de semana) en función del valor de fecha, puede probarla si ayuda:

CMonthWorkDay=
VAR currDate ='Date'[Date] 
RETURN
    COUNTROWS (
        FILTER (
            GENERATESERIES (
                DATE ( YEAR ( currDate ), MONTH ( currDate ), 1 ),
                DATE ( YEAR ( currDate ), MONTH ( currDate ) + 1, 1 ) - 1
            ),
            WEEKDAY ( [Date], 2 ) <= 5
        )
 )

saludos

Xiaoxin Sheng

View solution in original post

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

No @carlosagarcia,

si puede compartir algunos datos ficticios que mantienen la estructura de datos sin procesar y los resultados esperados. Debería ayudarnos a aclarar su escenario y probar la fórmula de codificación.

Cómo obtener una respuesta rápida a su pregunta

saludos

Xiaoxin Sheng

Hola @v-shex-msft Lo que quiero hacer es contar los días laborables del mes actual.

Por ejemplo en este caso julio 2021 tiene 22 días hábiles, quiero poder ver los días laborables desplatados en una tarjeta o una mesa para poder usarlo para obtener un promedio de líneas procesadas.

Esto parece ser un buen método, pero no puedo volver a crear la tabla MonthYear.

carlosagarcia_0-1627563917467.png

https://stackoverflow.com/questions/59242331/calculate-number-of-working-days-based-on-a-month-and-y...

No @carlosagarcia,

Esta es una expresión de columna calculada que se puede usar para calcular los días laborables del mes actual (excepto el fin de semana) en función del valor de fecha, puede probarla si ayuda:

CMonthWorkDay=
VAR currDate ='Date'[Date] 
RETURN
    COUNTROWS (
        FILTER (
            GENERATESERIES (
                DATE ( YEAR ( currDate ), MONTH ( currDate ), 1 ),
                DATE ( YEAR ( currDate ), MONTH ( currDate ) + 1, 1 ) - 1
            ),
            WEEKDAY ( [Date], 2 ) <= 5
        )
 )

saludos

Xiaoxin Sheng

Syndicate_Admin
Administrator
Administrator

¿Tiene una tabla de fechas con una columna para indicar los días laborables? Si es así, puede usar una expresión como esta

Recuento por WD =
VAR countoflines = [Su medida de recuento]
VAR WD =
CALCULATE ( COUNTROWS ( 'Date' ), 'Date'[IsWorkingDay] = "Y" )
devolución
DIVIDIR ( countoflines, WD )

palmadita

Hola Ma,

No tengo una tabla de fechas, me treid diferentes métodos durante el fin de semana con varios mensajes y no pude encontrar uno que dará la cantidad total de días, siempre fue decending uno por uno.

Esto es lo más lejos que llegué.

Fecha = CALENDARIO (DATE(2021,1,1), DATE(2022,12,31))
Días laborables =
VAR Año = AÑO( [Fecha] )
VAR Mes = MES( [Fecha] )
VAR DatesInMonth = GENERATESERIES( [Fecha], FECHA( Año, Mes + 1, 1 ) - 1, 1 )
VOLVER SUMX(
DatesInMonth,
IF( WEEKDAY( [Valor] ) IN { 1, 7 }, 0, 1 )
)

@carlosagarcia

WorkingDaysCurrentMonth = 
  VAR __Calendar = 
    ADDCOLUMNS(
      CALENDAR(DATE(2021,1,1),DATE(2021,12,31))
      "IsWorkDay", IF(WEEKDAY([Date],2),1,0)
    )
  VAR __Today = TODAY()
  VAR __Start = DATE(YEAR(__Today),MONTH(__Today),1)
  VAR __End = EOMONTH(__Today,0)
RETURN
  COUNTROWS(FILTER(__Calendar,[IsWorkDay]=1 && [Date] >=__Start && [Date]<=__End))

Hola @Greg_Deckler ¿Todavía serías capaz de ayudarme?

@carlosagarcia Lo sentimos, error de sintaxis, debe ser:

"IsWorkDay", IF(WEEKDAY([Date],2)<6,1,0)

@Greg_Deckler cuando te refieres a IsWorkDay , ¿a qué te refieres también?

La consulta Dax sigue sin reconocer ese nombre. Realmente aprecio la ayuda.

carlosagarcia_0-1627394219310.png

Hola @Greg_Deckler , Me perdiste en el IsworkDay. He adjuntado una captura de pantalla.

carlosagarcia_1-1627303268513.png

Syndicate_Admin
Administrator
Administrator

@carlosagarcia Por lo tanto, generalmente, puede crear una columna "IsWorkingDay" en su tabla de calendario usando algo como:

IsWorkingDay = IF(WEEKDAY([Fecha],2)<6,1,0)

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.