Ir para conteúdo

Gerson Faria

Alunos
  • Total de itens

    4
  • Registro em

  • Última visita

Perfil

  • Interesse em receber propostas de empresas
    Não
  • Eu trabalho ...
    Em uma empresa
  • Trabalho na
    Rodoviário Camilo dos Santos Filho Ltda

Informações adicionais

  • Sexo
    ♂ Masculino
  • Mora em
    MG

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Gerson Faria's Achievements

Aprendiz

Aprendiz (1/6)

0

Reputação

1

Community Answers

  1. Segue o código da dCalendario. fCTRC é a minha fato. let DataMin = List.Min(fCTRC[Data de Emissao]), AnoMin = Date.Year(DataMin), DataMax = List.Max(fCTRC[Data de Emissao]), AnoMax = Date.Year(DataMax), DataInicial = #date(AnoMin, 01,01), DataFinal = #date(AnoMax, 12, 31), Duracao = Duration.Days(DataFinal - DataInicial) + 1, Fonte = List.Dates(DataInicial, Duracao, #duration(1, 0, 0, 0)), #"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Tipo Alterado" = Table.TransformColumnTypes(#"Convertido para Tabela",{{"Column1", type date}}), #"Colunas Renomeadas" = Table.RenameColumns(#"Tipo Alterado",{{"Column1", "Data"}}), #"Ano Inserido" = Table.AddColumn(#"Colunas Renomeadas", "Ano", each Date.Year([Data]), Int64.Type), #"Mês Inserido" = Table.AddColumn(#"Ano Inserido", "Mês", each Date.Month([Data]), Int64.Type), #"Nome do Mês Inserido" = Table.AddColumn(#"Mês Inserido", "Nome do Mês", each Date.MonthName([Data]), type text), #"Dia Inserido" = Table.AddColumn(#"Nome do Mês Inserido", "Dia", each Date.Day([Data]), Int64.Type), #"Nome do Dia Inserido" = Table.AddColumn(#"Dia Inserido", "Nome do Dia", each Date.DayOfWeekName([Data]), type text), #"Dia da Semana Inserido" = Table.AddColumn(#"Nome do Dia Inserido", "Dia da Semana", each Date.DayOfWeek([Data]), Int64.Type), #"Semana do Mês Inserida" = Table.AddColumn(#"Dia da Semana Inserido", "Semana do Mês", each Date.WeekOfMonth([Data]), Int64.Type), #"Consultas Mescladas" = Table.NestedJoin(#"Semana do Mês Inserida", {"Data"}, dFeriados, {"DATA"}, "dFeriados", JoinKind.LeftOuter), #"dFeriados Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "dFeriados", {"ÚTIL"}, {"Auxiliar - Feriados"}), #"Valor Substituído" = Table.ReplaceValue(#"dFeriados Expandido",null,1,Replacer.ReplaceValue,{"Auxiliar - Feriados"}), #"Coluna Condicional Adicionada" = Table.AddColumn(#"Valor Substituído", "Dia Útil", each if [Dia da Semana] = 0 then 0 else if [Dia da Semana] = 6 then 0 else if [#"Auxiliar - Feriados"] = 0 then 0 else [#"Auxiliar - Feriados"]), #"Colunas Removidas" = Table.RemoveColumns(#"Coluna Condicional Adicionada",{"Auxiliar - Feriados"}), #"Tipo Alterado1" = Table.TransformColumnTypes(#"Colunas Removidas",{{"Dia Útil", type number}}) in #"Tipo Alterado1"
  2. O pessoal da TI não autorizou mandar o PBIX. Mas eu usei o código do curso onde a tabela de datas usa as datas da tabela fato para identificar a data inicial e final. De qualquer forma, como a tua sugestão também não funcionou no meu arquivo, fiz algumas tentativas que acreditava que funcionaria, mas não funcionaram e outras que eu não tinha certeza que funcionariam e uma delas funcionou, mas não entendo bem por que. Abaixo tem a alteração que eu fiz na variável vDiaUtilAnterior. ORIGINAL var vDiaUtilAnterior = CALCULATE( MAX( DATAS[DATA] ), DATAS[ÚTIL] <> 0, DATAS[DATA] <= vOntem ) COM A FUNÇÃO FILTER var vDiaUtilAnterior = CALCULATE( MAX( DATAS[Data] ), FILTER( DATAS, DATAS[Dia Útil] <> 0 ), FILTER( DATAS, DATAS[Data] <= vOntem ) ) Essa mesma alteração eu fiz na variável vDiaUtilPosterior e funcionou. Não compreendi. Se você puder me ajudar a entender porque funcionou eu agradeço.
  3. Bom dia, @leoslemos! Transferi a tua solução para o meu arquivo. Só alterei os nomes de colunas da minha base de dados mas continuou dando a mensagem de referência circular. Mas deixa eu entender o que você fez. Você criou umas variáveis a mais em relação à minha solução, mas a lógica é a mesma, certo? Você criou a variável vDiaNaoUtil para tirar um IF do resultado e transformar o IF do resultado em SWITCH, certo? E as outras duas variáveis - vDiaUtil e vDataAtual - tem uma função que eu não usei - SELECTEDVALUE. Seria esse o diferencial que fez a tua solução funcionar?
  4. Bom dia! Eu tenho dois arquivos PBIX. Nos dois arquivos eu tenho uma tabela dimensão de datas. Porém, num arquivo ela foi criada a partir de uma planilha do Excel e no outro foi criado através da linguagem M. Nos dois arquivos eu identifiquei o que é dia útil. Foi criada uma coluna [ÚTIL] onde 0 (zero) significa dia não útil e 1 (um) significa dia útil. Até aí, os dois arquivos funcionaram igualmente bem. Eu preciso apurar nos dois arquivos o faturamento por dia útil. Só que, eventualmente, existem faturamentos em dias não úteis. O conceito da empresa para estes casos é que o faturamento do dia não útil deve ser somado ao faturamento do primeiro dia útil imediatamente anterior a esse dia não útil, desde que esse dia útil esteja no mesmo mês. Se não houver dia útil anterior no mesmo mês, deve ser somado ao primeiro dia útil posterior. Eu criei uma coluna que identifica em qual dia útil um eventual faturamento em dia não útil deve ser atribuído, usando DAX, como segue: DIA FATURAMENTO = var vOntem = PREVIOUSDAY(DATAS[DATA]) var vAmanha = NEXTDAY(DATAS[DATA]) var vDiaUtilAnterior = CALCULATE(MAX(DATAS[DATA]), DATAS[ÚTIL] <> 0, DATAS[DATA] <= vOntem ) var vDiaUtilPosterior = CALCULATE(min(DATAS[DATA]), DATAS[ÚTIL] <> 0, DATAS[DATA] >= vAmanha ) RETURN IF( DATAS[ÚTIL] <> 0, DATAS[DATA], IF( DATAS[Mês] = month(vDiaUtilAnterior), vDiaUtilAnterior, vDiaUtilPosterior ) ) O meu problema é o seguinte, no arquivo em que a tabela de datas tem origem numa planilha de Excel funcionou perfeitamente. No arquivo em que a tabela de datas foi criada com a linguagem M, não funciona. Ele informa que foi criada uma referência circular. Não consegui identificar por quê. Alguém saberia me dizer o que está errado para este segundo arquivo?
×
×
  • Criar Novo...