Regreso el 2do martes de cada mes

Un usuario Pregunto ✅

tacobannas

Estoy tratando de regresar el segundo martes de cada mes. Mi tabla tiene una fecha para todos los días. ¿Cómo puedo devolver esto basado en ese campo?

En respuesta a Phil_Seamark

Intente esto como una columna calculada

Is 2nd Tuesday = 
VAR a="Dates"[Date]
VAR y = FILTER(
        ALL(Dates[Date]),
        YEAR('Dates'[Date]) = YEAR(a) && 
        MONTH('Dates'[Date]) = MONTH(a) && 
        DAY([Date]) > 7 && 
        DAY([Date]) < 15 && 
        WEEKDAY([Date],3) = 1)
RETURN MAXX(y,[Date])

mfelix

Hola @tacobannas,

Crea estas dos columnas:

MonthWeekday = MONTH('Calendar'[Date]) & WEEKDAY('Calendar'[Date]) 

weekday_Number = WEEKDAY('Calendar'[Date])

Luego crea esta medida:

2nd Tuesday =
VAR Date_Max =
    MAX ( 'Calendar'[Date] )
VAR Month_week_Max =
    MAX ( 'Calendar'[MonthWeekday] )
RETURN
    IF (
        CALCULATE (
            COUNT ( 'Calendar'[MonthWeekday] ),
            'Calendar'[Date] <= Date_Max,
            'Calendar'[MonthWeekday] = Month_week_Max
        )
            = 2
            && MAX ( 'Calendar'[weekday_Number] ) = 3,
        "2nd",
        ""
    )

Agregue la medida como un filtro en sus imágenes y debería obtener el resultado que necesita:

fechas.png

Saludos,

mfelix

tacobannas

En respuesta a mfelix

Gracias, eso funciona como una medida, pero esperaba devolver el segundo martes de cada mes como una fecha en una columna. Entonces, para todos los días del mes en mi tabla de calendario, tendría una columna correspondiente con la fecha del segundo martes.

En respuesta a tacobannas

Intente esto como una columna calculada

Is 2nd Tuesday = 
VAR x =  IF(WEEKDAY([Date],1) = 3 , DAY([Date]) , 0)
RETURN IF(x > 7 && x < 15 , 1 , 0)

tacobannas

En respuesta a Phil_Seamark

Eso parece funcionar devolviendo verdadero o falso, sin embargo, quiero devolver la fecha real del segundo martes.

2017-12-05_12-25-54.png

En respuesta a tacobannas

Hola

por favor intente esto

Is 2nd Tuesday = 
VAR x =  IF(WEEKDAY([Date],1) = 3 , DAY([Date]) , 0)
RETURN IF(x > 7 && x < 15 , [Date] , blank())

Pranati05

En respuesta a Phil_Seamark

Hola,

¿Cómo obtener el último martes de un mes? Quiero agregar una columna calculada en mi tabla que debería devolver el mes actual de la fecha de esa fila. Pero el actual es desde el último miércoles del mes anterior hasta el último martes del mes actual en lugar de solo el mes (fecha).

tacobannas

En respuesta a Phil_Seamark

Esto parece estar funcionando, pero necesito que se complete en cada par de valores de fila, no en blanco en el caso de que no sea el segundo martes.

En respuesta a tacobannas

Entonces, ¿quiere decir que cada fila del mes llevará la fecha que resulta ser el segundo martes de cada mes?

En respuesta a Phil_Seamark

Intente esto como una columna calculada

Is 2nd Tuesday = 
VAR a="Dates"[Date]
VAR y = FILTER(
        ALL(Dates[Date]),
        YEAR('Dates'[Date]) = YEAR(a) && 
        MONTH('Dates'[Date]) = MONTH(a) && 
        DAY([Date]) > 7 && 
        DAY([Date]) < 15 && 
        WEEKDAY([Date],3) = 1)
RETURN MAXX(y,[Date])

Marcel Beug

En respuesta a Phil_Seamark

@tacobannas mi solución Power Query también se ajusta a sus requisitos.

tacobannas

En respuesta a Marcel Beug

@MarcelBeug No estoy seguro de cómo convertir esa declaración de consulta de potencia en la sintaxis bi de potencia correcta.

Marcel Beug

En respuesta a tacobannas

Power BI abarca 2 lenguajes: Power Query (M) y DAX.

Si no se siente cómodo con Power Query, puede usar una solución DAX.

Además, Power Query es la sintaxis correcta de Power BI.

Como ya expliqué, en el Editor de consultas puede agregar una columna personalizada.

Captura de pantalla de la adición de una columna personalizada (tomado de otro tema, así que con otra fórmula):

Agregar una columna personalizada en el Editor de consultas.png

tacobannas

En respuesta a Marcel Beug

@MarcelBeug gracias por la aclaración adicional. Mi tabla de fechas no es una tabla que aparece en el editor de consultas, así que supongo que no puedo usar su solución de Power Query… Creé la tabla de fechas creando una nueva columna calculada. Probablemente también estoy un poco más confundido ya que soy nuevo en PowerBI 🙂

Sin embargo, la solución @Phil_Seamark está funcionando, así que creo que me quedaré con eso.

2ndTuesday = VAR a="Date"[Date]
VAR y = FILTER(
        ALL('Date'[Date]),
        YEAR('Date'[Date]) = YEAR(a) && 
        MONTH('Date'[Date]) = MONTH(a) && 
        DAY('Date'[Date]) > 7 && 
        DAY('Date'[Date]) < 15 && 
        WEEKDAY('Date'[Date],3) = 1)
RETURN MAXX(y,'Date'[Date])

Gracias a todos por la ayuda y la rápida respuesta

Marcel Beug

En respuesta a Phil_Seamark

Una solución de Power Query: agregue una columna con la fórmula:

= Date.StartOfWeek(#date(Date.Year([Date]),Date.Month([Date]),14),Day.Tuesday)

Esto tomará el día 14 del año/mes de la fecha, ya partir de esa fecha: el inicio de la semana, siendo el martes el primer día de la semana. Así que debe ser el segundo martes del mes.

freder1ck

En respuesta a Marcel Beug

@MarcelBeug: Encontré este método muy útil para obtener el horario de verano para una función de tiempo de actualización local.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *