[Power BI] Construindo Funções

Este artigo servirá como repositório de todas as funções que utilizo no dia a dia e facilitam alguns processos no Power Query.

As funções, no Power Query, tem a finalidade de diminuir os códigos nas etapas aplicadas e também se você realiza a mesma etapa em todas as suas consultas, a função agiliza o processo porque dessa maneira não precisará reescrever todo o código, apenas clicar em “Invocar Função”. 

fx_timestamp_to_date

Função criada para transformar os valores em segundos ou milissegundos do timestamp para data.

O que é timestamp?

Esses números possuem vários nomes: Unix timestampsUnix Time, ou simplesmente timestamps (que é o nome que usaremos a partir de agora). Um timestamp basicamente representa um instante único, um ponto específico na linha do tempo, e seu valor corresponde a uma determinada quantidade de tempo decorrida a partir de um instante inicial.

Esse instante inicial (o “instante zero”) é chamado de Unix Epoch, cujo valor é 1970-01-01T00:00Z (1 de janeiro de 1970, à meia-noite, em UTC 1). E o timestamp geralmente tem seu valor em segundos ou milissegundos, podendo ser um número positivo (para instantes que ocorrem depois do Unix Epoch) ou negativo (para instantes anteriores ao Unix Epoch).

Fonte: hkotsubo_programming_blog

(
    timestamp as number
)=>
let
    
    tamanho_timestamp = 
    //Verifica a quantidade de números (caracteres) no timestamp
    Text.Length(Text.From(timestamp, "pt-BR")),    
    
    valor_segundos = 
    /*
    A função #duration aceita segundos com até 10 números (caracteres)
    "valor_segundos" faz a verificação se for maior que 10 para remover os números (caracteres) excedentes
    */
    if tamanho_timestamp > 10
    then timestamp / Number.Power(10, tamanho_timestamp - 10)
    else  timestamp,

    Fonte = 
    /*
    Timestamp são a quantidade de segundos após o 01/01/1970
    Por isso a função #datetime é utilizada, para somar o total de segundos após 01/01/1970  
    */
    #datetime(1970,1,1,0,0,0) + 
    #duration(0,0,0,valor_segundos)

in
    Fonte
Gostou?

Salva esse link nos seus favoritos, porque de tempos em tempos atualizarei esse artigo e você pode consultar sempre que for preciso.