Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago

Ayuda requerida

Hola a todos, tengo el siguiente cálculo para los números de la semana fiscal, sin embargo, comienza el canlendar fiscal para comenzar el 1 de abril de cada año y necesito que comience el 1er lunes de abril de cada año.

¿Alguien puede sugerir cómo cambiar esto para obtener el resultado correcto?

Semana Fiscal =
--Entradas--
DÓNDE WeekStartsOn = "mi"
DÓNDE FiscalStartMonés = 4

--Cálculo--
DÓNDE FiscalFirstDay =
SI(
MES('Tabla de fechas'[Fecha]) < FiscalStartMonés,
FECHA(
AÑO('Tabla de fechas'[Fecha])-1,
FiscalStartMonés,
1
),
FECHA(
AÑO('Tabla de fechas'[Fecha]),
FiscalStartMonés,
1
)
)
DÓNDE FilteredTableCount =
CUENTAS(
FILTRO(
SELECCIONARCOLUMNAS(
GENERACIONES(
FiscalFirstDay,
'Tabla de fechas'[Fecha]
),
"Fechas",
[Valor]
),
FORMATO([Fechas],"ddd") = WeekStartsOn
)
)
DÓNDE SemanaNo =
SI(
FORMATO(FiscalFirstDay,"ddd") <> WeekStartsOn,
FilteredTableCount + 1,
FilteredTableCount
)
DEVOLUCIÓN
"Semana " & SemanaNo

5 Replies

  • @billyrich83 , Pruebe estas nuevas columnas

    Inicio del año = if(mes([Fecha]) <4, fecha(año([Fecha])-1,4,1), fecha(año([Fecha])-1,4,1))


    Inicio de la semana = 'Fecha'[Fecha]+-1*WEEKDAY('Fecha'[Fecha]

    FY Inicio de semana = minx(filter('Fecha', [Inicio de semana] >= [Inicio de año]), [Inicio de semana])

    FY Week No = cociente(datediff([FY Inicio de la semana], [Fecha], día),7) +1

  • Hola @billyrich83 ,
    Acabo de modificar un poco en tu código y funcionó

    Crear una nueva columna como se muestra a continuación

    Start of Week = ('Date'[Date]+-1*WEEKDAY('Date'[Date],2)) + 1

    Se ha modificado el DAX que compartía de la siguiente manera

    FiscalWeek = 
    --Inputs--
    VAR WeekStartsOn = "mon"
    VAR FiscalStartMonth = 4
    
    --Calculation--
    VAR FiscalFirstDay = 
        IF(
            MONTH('Date'[Date]) < FiscalStartMonth,
            DATE(
                YEAR('Date'[Date])-1,
                FiscalStartMonth,
                1
            ),
            DATE(
                YEAR('Date'[Date]),
                FiscalStartMonth,
                1
            )
        )
    VAR FilteredTableCount = 
        COUNTROWS(
                SELECTCOLUMNS(
                    GENERATESERIES(
                        FiscalFirstDay,
                        'Date'[Date]
                    ),
                    "Dates",
                    [Value]
                )
        )
    VAR WeekNos = 
                QUOTIENT(FilteredTableCount+1, 7)
    RETURN
        "Week " & WeekNos

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola

      Gracias por esto, 1 pequeño problema está mostrando el primer día como cero y ahora estoy un día atrasado en el cálculo, ¿hay alguna manera de solucionar esto? podría ser algo que he hecho.

      Screenshot 2022-01-21 100221.png

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Cuando revisé el código, descubrí que la codificación dura que ha hecho funciona bien durante un año (probablemente porque ha codificado en función de ese año) mientras que no funciona para el otro año. Han estado ocupados desde entonces. Por lo tanto, no puedo investigar esto más a fondo. Puede ser que alguien más pueda ayudarlo con esto.

  • ¿ @billyrich83

    Pruebe esto, cambie el valor en COCIENTE a 2

    vxiaotang_0-1644470369778.png

    ¿Has resuelto esta pregunta? Si ha resuelto la pregunta, puede aceptar la respuesta útil como la solución o compartir su método y aceptarlo como solución, gracias por su contribución para mejorar Power BI.

    Si necesita más ayuda, por favor hágamelo saber.

    Saludos

    Equipo de soporte de la comunidad _Tang

    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.