Code Library

DAX · UDF

Date.ISOWeekNumber

Número da semana ISO 8601.

Categoria: Data e horaTipo: UDFVersão: v1.1.0Fonte: Paulo André Jesus — OfficeTuningAtualizado em: 25/09/2026
Documentação completa na Function Library →

Sintaxe

Date.ISOWeekNumber ( pDate )

Argumentos

NomeTipoObrigatórioDescrição
pDateDATETIME VALSimData.

Retorno

Número inteiro

Código completo

DEFINE
    /// Número da semana ISO 8601 (semana começa na segunda; semana 1 contém a primeira quinta-feira do ano).
    /// @param {DATETIME} pDate - Data.
    /// @returns Número da semana, de 1 a 53.
    FUNCTION Date.ISOWeekNumber =
        ( pDate : DATETIME VAL ) =>
        -- Quinta-feira da mesma semana decide o ano ISO
        VAR vThursday = pDate - WEEKDAY ( pDate, 2 ) + 4
        RETURN
            INT ( ( vThursday - DATE ( YEAR ( vThursday ), 1, 1 ) ) / 7 ) + 1

EVALUATE
{ Date.ISOWeekNumber ( DATE ( 2025, 1, 5 ) ), Date.ISOWeekNumber ( DATE ( 2027, 1, 1 ) ) }  // 1 · 53

Exemplos

EVALUATE { Date.ISOWeekNumber ( DATE ( 2025, 1, 5 ) ), Date.ISOWeekNumber ( DATE ( 2027, 1, 1 ) ) }
// 1 · 53

Dicas e observações

💡 Semana começa na segunda; a semana 1 contém a primeira quinta-feira do ano. 💡 Dá o mesmo resultado que o nativo WEEKNUM(data, 21). ⚠️ 01/01/2027 é da semana 53 de 2026: para rotular, combine com o ano ISO (ano da quinta-feira).