Ir para conteúdo
  • 0

Como agregar pelo número do dia e não pela data


Cirilo Cavaco
Ir para solução Solucionado por Erick Oliveira ,

Pergunta

  • Alunos

Olá a todos.

Temos uma campanha que decorre todos os anos na mesma altura do ano mas as datas nunca são totalmente coincidentes.

Ao invés de nas linhas ter a data dos dias da campanha,queria ter na primeira linha o dia 1 da campanha para todos os anos, na linha 2 o dia dois da campanha para todos os anos e assim sucessivamente.

Não sei se me consegui fazer entender.

Desde já agradeço a disponibilidade 

Cumprimentos

Cirilo Cavaco

image.png.25f0059ba509f06678be6659f875ff27.png

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Bom dia @Cirilo Cavaco;

 

Segue uma sugestão:

Criei na tabela Calendário uma coluna que coloca o dia do início da campanha até o final com base na tabela fato, toda vez finaliza a sequencia de dias de venda, a contagem dos dias retorna para 1.

image.png.f957d3046219d9fb86bf121a226f5adf.png

Em anexo um arquivo de exemplo.

let
    MenorData = #date(2021, 1, 1),
    MaiorData = #date(2022, 12, 31),
    DataInicio = MenorData,
    DataFim = MaiorData,
    Dias = Duration.Days(DataFim - DataInicio) + 1,
    ListarDatas = List.Dates(DataInicio, Dias, #duration(1, 0, 0, 0)),
    Tabela = #table(
        type table [Data = date, Dia = Int64.Type, Ano = number, NomeMes = text, MesAbre = text, MesNum = number],
        List.Transform(
            ListarDatas,
            each
                {
                    _,
                    Date.Day(_),
                    Date.Year(_),
                    Text.Proper(Date.MonthName(_)),
                    Text.Proper(Text.Start(Date.MonthName(_), 3)),
                    Date.Month(_)
                }
        )
    ),
    ConsultasMescladas = Table.NestedJoin(Tabela, {"Data"}, fVendas, {"Data"}, "TabelaVendas", JoinKind.LeftOuter),
    VerificarVendas = Table.TransformColumns(
        ConsultasMescladas, {{"TabelaVendas", each not (Table.IsEmpty(_)), type logical}}
    ),
    IndiceZero = Table.AddIndexColumn(VerificarVendas, "Índice", 0, 1, Int64.Type),
    IndiceUm = Table.AddIndexColumn(IndiceZero, "Índice.1", 1, 1, Int64.Type),
    MesclasIndices = Table.NestedJoin(IndiceUm, {"Índice"}, IndiceUm, {"Índice.1"}, "IndiceUm", JoinKind.LeftOuter),
    IndiceUmExpandido = Table.ExpandTableColumn(MesclasIndices, "IndiceUm", {"TabelaVendas"}, {"TabelaVendas.1"}),
    LinhasClassificadas = Table.Sort(IndiceUmExpandido, {{"Índice", Order.Ascending}}),
    AdicionarIndiceAuxiliar = Table.AddColumn(
        LinhasClassificadas, "IndiceAuxiliar", each if [TabelaVendas] <> [TabelaVendas.1] then [Índice.1] else null, Int64.Type
    ),
    PreenchidoAbaixo = Table.FillDown(AdicionarIndiceAuxiliar, {"IndiceAuxiliar"}),
    AdicionarDiasCamapnha = Table.AddColumn(
        PreenchidoAbaixo, "Dias Campanha", each if [TabelaVendas] then ([Índice.1] - [IndiceAuxiliar] + 1) else null,
        Int64.Type
    ),
    OutrasColunasRemovidas = Table.SelectColumns(
        AdicionarDiasCamapnha, {"Data", "Dia", "Ano", "NomeMes", "MesAbre", "MesNum", "Dias Campanha"}
    )
in
    OutrasColunasRemovidas

Como agregar pelo número do dia e não pela data.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
6 minutos atrás, Edson Igari disse:

@Cirilo Cavaco, crie uma coluna na sua calendário da seguinte forma: DIA = DAY(dCalendario[Date]) e depois substitua pela data na matriz.

Já tinha feito isso mas depois ele vai colocar no dia do mês correspondente e não colocar na primeira linha todos os resultados do dia 1 da campanha

 

image.png.30dc0e4c4a0a82eae8a9706e7ac3faea.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

O que tenho atualmente é isto:

Em 2021 a campanha começou no dia 1 do mês e em 2022 começou no dia 5 do mês

image.png.c8cc361730ae2f1a6b8b1ad0adb4863e.png

O que pretendo é:

Resultados do primeiro dia de campanha, independentemente do ano na primeira linha da tabela

Nesta caso a coluna A representaria o dia da campanha não o dia do mês em que a campanha ocorre

image.png.cf064dbcbb68ac89c17270b9c1ef9dbf.png

 

Editado por Cirilo Cavaco
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...