Ir para conteúdo
  • 0

[CRIAR TABELA DINÂMICA] X [MESCLAR COM OUTRA DINAMICA]


Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos
Postado

Bom dia pessoal.

Estou estudando diariamente o curso desde o básico e já consegui melhorar e muito o desempenho do meu dashboard.

Surgiu uma dúvida aqui.

Tenho uma tabela dinâmica que contém códigos de públicos do Meta Ads, extraída a partir da tabela fato f_meta_ads, ou seja, tenho uma tabela dinamica chamada d_meta_ads_publicos, nessa tabela criei uma nova coluna chamanda tipo de publico (onde o resultado é quente, frio, remarketing). 

Só que eu tenho uma outra tabela fato que também tem a coluna de publicos, essa tabela se chama f_cadastros. Nela contém o código do publico somente, ou seja, não da pra saber o nome do público ( que está na tabela f_meta_ads ou d_meta_ads_publico ). 

A grande dúvida que eu tenho é: poderia mesclar na tabela d_cadastros_publicos direto da tabela dinamica d_meta_ads_publicos via id do publico e puxar o tipo de leads, ou teria que fazer isso sempre da tabela fato?

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
Postado (editado)

Suave @Andre Fortuna?

Não deu para entender muito bem como esta o teu modelo, seria mais fácil você compartilhar uma foto dele com a gente para ficar mais claro as relações entre cada tabela. O que entendi foi isso:

image.png.4bbcbdf70b468413c465b5d78e485515.png

Imagino que com "tabela dinâmica" você quer dizer "tabela dimensão"? Neste caso, bastaria criar uma relação uni-direcional entre a coluna 'd_meta_ads_publico'[publico_codigo] e a coluna 'f_cadastros'[publico_codigo]  e automaticamente o Power BI já vai ser capaz de buscar a coluna [publico_nome] da tabela 'd_meta_ads_publico'.

Com essa relação estabelecida, bastaria você criar as medidas de  analise baseadas na tabela 'f_cadastros' e adicionando quando necessário coluna [publico_nome] no teu visual.

Se essa resposta te ajudou, não esquece de marcar como melhor solução 😉

Abs!

 

Editado por Joao Raulino
  • 0
  • Alunos
Postado (editado)
23 minutos atrás, Andre Fortuna disse:

Bom dia pessoal.

Estou estudando diariamente o curso desde o básico e já consegui melhorar e muito o desempenho do meu dashboard.

Surgiu uma dúvida aqui.

Tenho uma tabela dinâmica que contém códigos de públicos do Meta Ads, extraída a partir da tabela fato f_meta_ads, ou seja, tenho uma tabela dinamica chamada d_meta_ads_publicos, nessa tabela criei uma nova coluna chamanda tipo de publico (onde o resultado é quente, frio, remarketing). 

Só que eu tenho uma outra tabela fato que também tem a coluna de publicos, essa tabela se chama f_cadastros. Nela contém o código do publico somente, ou seja, não da pra saber o nome do público ( que está na tabela f_meta_ads ou d_meta_ads_publico ). 

A grande dúvida que eu tenho é: poderia mesclar na tabela d_cadastros_publicos direto da tabela dinamica d_meta_ads_publicos via id do publico e puxar o tipo de leads, ou teria que fazer isso sempre da tabela fato?

Fala Andre, até tem sim cara. Lá em cima quando você apertar na tabela f_cadastros e ir em pagina inicial tem uma opção mesclar tabela.
 

Nessa opção você escolhe outra tabela para mesclar (que no caso deve ser a d_meta_ads_publico) e escolhe a chave de mescla (que é a coluna de codigo de publicos) e ai dps você expande a coluna que quer.

No entanto, cara acredito que você não precisa fazer isso. É melhor resolver na modelagem, faz um relacionamento da d_meta_ads_publicos com a f_Cadastros que ai tu ja consegue montar visualizações utilizando a coluna tipo de publico e medidas que envolvam a f_cadastros.

 

Em resumo respondendo a duvida: pode fazer da tabela dimensao, no entanto para performance o melhor é nem fazer a mescla e sim botar as duas para conversar via relacionamento na aba de modelagem

Editado por paulocesarmlf
  • 0
  • Alunos
Postado
31 minutos atrás, Joao Raulino disse:

Suave @Andre Fortuna?

Não deu para entender muito bem como esta o teu modelo, seria mais fácil você compartilhar uma foto dele com a gente para ficar mais claro as relações entre cada tabela. O que entendi foi isso:

image.png.4bbcbdf70b468413c465b5d78e485515.png

Imagino que com "tabela dinâmica" você quer dizer "tabela dimensão"? Neste caso, bastaria criar uma relação uni-direcional entre a coluna 'd_meta_ads_publico'[publico_codigo] e a coluna 'f_cadastros'[publico_codigo]  e automaticamente o Power BI já vai ser capaz de buscar a coluna [publico_nome] da tabela 'd_meta_ads_publico'.

Com essa relação estabelecida, bastaria você criar as medidas de  analise baseadas na tabela 'f_cadastros' e adicionando quando necessário coluna [publico_nome] no teu visual.

Se essa resposta te ajudou, não esquece de marcar como melhor solução 😉

Abs!

 

Fala meu querido, blz?

Vou te mandar o código da linguagem M pra ver se vc entende.

Lá na tabela cadastros, preciso tb tirar a temperatura do lead, pois lá terá uma informação que na tabela fato f_meta_ads não tem, que é a temperatura organico.

Na tabela f_cadastros, vem dados de diversas plataformas incluindo organico, ou seja, se eu quiser unificar todos os tipos de público, teria que mesclar em uma tabela dimensão puxando todos os códigos da f_cadastros e mesclando.

let
    Fonte = List.Distinct (f_cadastros [utm_medium]),
    #"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Convertido para Tabela",{{"Column1", "adset_id"}}),
    #"Consultas Mescladas" = Table.NestedJoin(#"Colunas Renomeadas", {"adset_id"}, d_meta_ads_captacao_publicos, {"adset_id"}, "d_meta_ads_captacao_publicos", JoinKind.LeftOuter),
    #"d_meta_ads_captacao_publicos Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "d_meta_ads_captacao_publicos", {"temperatura"}, {"d_meta_ads_captacao_publicos.temperatura"}),
    #"Consultas Mescladas1" = Table.NestedJoin(#"d_meta_ads_captacao_publicos Expandido", {"adset_id"}, d_google_ads_captacao_publicos, {"ad_group_id"}, "d_google_ads_captacao_publicos", JoinKind.LeftOuter),
    #"d_google_ads_captacao_publicos Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas1", "d_google_ads_captacao_publicos", {"temperatura"}, {"d_google_ads_captacao_publicos.temperatura"}),
    #"Coluna Condicional Adicionada" = Table.AddColumn(#"d_google_ads_captacao_publicos Expandido", "Personalizar", each if Text.Contains([adset_id], "ORGANICO") then "ORGÂNICO" else if Text.Contains([adset_id], "undefined") then "INDETERMINADO" else null),
    #"Colunas Mescladas" = Table.CombineColumns(#"Coluna Condicional Adicionada",{"d_meta_ads_captacao_publicos.temperatura", "d_google_ads_captacao_publicos.temperatura", "Personalizar"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Temperatura")
in
    #"Colunas Mescladas"

 

 

  • 0
  • Alunos
Postado
20 minutos atrás, Joao Raulino disse:

Boa @Andre Fortuna!

Consegue compartilhar um exemplo simplificado em .PBIX pra gente analisar? Como tanto eu quanto o @paulocesarmlf suspeitamos, a principio parece que não ha necessidade de mesclar as consultas. Mas talvez tenha algum detalhe escondido que só vai aparecer ao analisar o modelo 😉

Abs!

26 minutos atrás, Joao Raulino disse:

Boa @Andre Fortuna!

Consegue compartilhar um exemplo simplificado em .PBIX pra gente analisar? Como tanto eu quanto o @paulocesarmlf suspeitamos, a principio parece que não ha necessidade de mesclar as consultas. Mas talvez tenha algum detalhe escondido que só vai aparecer ao analisar o modelo 😉

Abs!

26 minutos atrás, Joao Raulino disse:

Boa @Andre Fortuna!

Consegue compartilhar um exemplo simplificado em .PBIX pra gente analisar? Como tanto eu quanto o @paulocesarmlf suspeitamos, a principio parece que não ha necessidade de mesclar as consultas. Mas talvez tenha algum detalhe escondido que só vai aparecer ao analisar o modelo 😉

Abs!

Opa, achei mais facil gravar um vídeo e te mandar, se puder olhar.

https://www.loom.com/share/7ef649b696f143aaae836944dc9b9d8e?sid=2d4759cf-27a9-470f-a3a6-35c978b4b605

Tmj e obrigado pelo seu tempo!



 

1 hora atrás, Joao Raulino disse:

Suave @Andre Fortuna?

Não deu para entender muito bem como esta o teu modelo, seria mais fácil você compartilhar uma foto dele com a gente para ficar mais claro as relações entre cada tabela. O que entendi foi isso:

image.png.4bbcbdf70b468413c465b5d78e485515.png

Imagino que com "tabela dinâmica" você quer dizer "tabela dimensão"? Neste caso, bastaria criar uma relação uni-direcional entre a coluna 'd_meta_ads_publico'[publico_codigo] e a coluna 'f_cadastros'[publico_codigo]  e automaticamente o Power BI já vai ser capaz de buscar a coluna [publico_nome] da tabela 'd_meta_ads_publico'.

Com essa relação estabelecida, bastaria você criar as medidas de  analise baseadas na tabela 'f_cadastros' e adicionando quando necessário coluna [publico_nome] no teu visual.

Se essa resposta te ajudou, não esquece de marcar como melhor solução 😉

Abs!

 

Fala meu querido, blz?

Vou te mandar o código da linguagem M pra ver se vc entende.

Lá na tabela cadastros, preciso tb tirar a temperatura do lead, pois lá terá uma informação que na tabela fato f_meta_ads não tem, que é a temperatura organico.

Na tabela f_cadastros, vem dados de diversas plataformas incluindo organico, ou seja, se eu quiser unificar todos os tipos de público, teria que mesclar em uma tabela dimensão puxando todos os códigos da f_cadastros e mesclando.

let
    Fonte = List.Distinct (f_cadastros [utm_medium]),
    #"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Convertido para Tabela",{{"Column1", "adset_id"}}),
    #"Consultas Mescladas" = Table.NestedJoin(#"Colunas Renomeadas", {"adset_id"}, d_meta_ads_captacao_publicos, {"adset_id"}, "d_meta_ads_captacao_publicos", JoinKind.LeftOuter),
    #"d_meta_ads_captacao_publicos Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "d_meta_ads_captacao_publicos", {"temperatura"}, {"d_meta_ads_captacao_publicos.temperatura"}),
    #"Consultas Mescladas1" = Table.NestedJoin(#"d_meta_ads_captacao_publicos Expandido", {"adset_id"}, d_google_ads_captacao_publicos, {"ad_group_id"}, "d_google_ads_captacao_publicos", JoinKind.LeftOuter),
    #"d_google_ads_captacao_publicos Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas1", "d_google_ads_captacao_publicos", {"temperatura"}, {"d_google_ads_captacao_publicos.temperatura"}),
    #"Coluna Condicional Adicionada" = Table.AddColumn(#"d_google_ads_captacao_publicos Expandido", "Personalizar", each if Text.Contains([adset_id], "ORGANICO") then "ORGÂNICO" else if Text.Contains([adset_id], "undefined") then "INDETERMINADO" else null),
    #"Colunas Mescladas" = Table.CombineColumns(#"Coluna Condicional Adicionada",{"d_meta_ads_captacao_publicos.temperatura", "d_google_ads_captacao_publicos.temperatura", "Personalizar"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Temperatura")
in
    #"Colunas Mescladas"

 

 

  • 0
  • Alunos
Postado
33 minutos atrás, Andre Fortuna disse:

Fala meu querido, blz?

Vou te mandar o código da linguagem M pra ver se vc entende.

Lá na tabela cadastros, preciso tb tirar a temperatura do lead, pois lá terá uma informação que na tabela fato f_meta_ads não tem, que é a temperatura organico.

Na tabela f_cadastros, vem dados de diversas plataformas incluindo organico, ou seja, se eu quiser unificar todos os tipos de público, teria que mesclar em uma tabela dimensão puxando todos os códigos da f_cadastros e mesclando.

let
    Fonte = List.Distinct (f_cadastros [utm_medium]),
    #"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Colunas Renomeadas" = Table.RenameColumns(#"Convertido para Tabela",{{"Column1", "adset_id"}}),
    #"Consultas Mescladas" = Table.NestedJoin(#"Colunas Renomeadas", {"adset_id"}, d_meta_ads_captacao_publicos, {"adset_id"}, "d_meta_ads_captacao_publicos", JoinKind.LeftOuter),
    #"d_meta_ads_captacao_publicos Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "d_meta_ads_captacao_publicos", {"temperatura"}, {"d_meta_ads_captacao_publicos.temperatura"}),
    #"Consultas Mescladas1" = Table.NestedJoin(#"d_meta_ads_captacao_publicos Expandido", {"adset_id"}, d_google_ads_captacao_publicos, {"ad_group_id"}, "d_google_ads_captacao_publicos", JoinKind.LeftOuter),
    #"d_google_ads_captacao_publicos Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas1", "d_google_ads_captacao_publicos", {"temperatura"}, {"d_google_ads_captacao_publicos.temperatura"}),
    #"Coluna Condicional Adicionada" = Table.AddColumn(#"d_google_ads_captacao_publicos Expandido", "Personalizar", each if Text.Contains([adset_id], "ORGANICO") then "ORGÂNICO" else if Text.Contains([adset_id], "undefined") then "INDETERMINADO" else null),
    #"Colunas Mescladas" = Table.CombineColumns(#"Coluna Condicional Adicionada",{"d_meta_ads_captacao_publicos.temperatura", "d_google_ads_captacao_publicos.temperatura", "Personalizar"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Temperatura")
in
    #"Colunas Mescladas"

 

 

 

1 hora atrás, Joao Raulino disse:

Boa @Andre Fortuna!

Consegue compartilhar um exemplo simplificado em .PBIX pra gente analisar? Como tanto eu quanto o @paulocesarmlf suspeitamos, a principio parece que não ha necessidade de mesclar as consultas. Mas talvez tenha algum detalhe escondido que só vai aparecer ao analisar o modelo 😉

Abs!

Mano eu acho que descobri uma coisa nova no power bi.

Eu acabei descobrindo que da pra fazer uma função e invocar essa função criando uma nova tabela.

Aí com ajuda do chat gpt fiz esse código.

 

// Função para buscar a temperatura baseada em utm_medium, considerando as tabelas corretas
(buscaUtmMedium as text) as text =>
    let
        // Função auxiliar para tentar obter a temperatura e evitar erros
        tentarObterTemperatura = (tabela, colunaId, valorId) =>
            let
                busca = Table.SelectRows(tabela, each Record.Field(_, colunaId) = valorId),
                resultado = if Table.IsEmpty(busca) then null else Record.Field(busca{0}, "temperatura")
            in
                resultado,

        // Busca em d_meta_ads_captacao_publicos
        resultadoMeta = tentarObterTemperatura(d_meta_ads_captacao_publicos, "adset_id", buscaUtmMedium),
        
        // Busca em d_google_ads_captacao_publicos, se necessário
        resultadoGoogle = if resultadoMeta <> null then resultadoMeta else tentarObterTemperatura(d_google_ads_captacao_publicos, "ad_group_id", buscaUtmMedium),
        
        // Verifica condições específicas na tabela f_cadastros
        resultadoFinal = if resultadoGoogle <> null then resultadoGoogle else
            if Text.Contains(buscaUtmMedium, "ORGANICO", Comparer.OrdinalIgnoreCase) then "ORGÂNICO"
            else if Text.Contains(buscaUtmMedium, "undefined", Comparer.OrdinalIgnoreCase) then "INDETERMINADO"
            else ""
    in
        resultadoFinal

N precisou fazer mesclagem e trouxe direto a temperatura.

Vou ver se vai ficar pesado o relatório e se é a melhor saída.

 

Faça login para comentar

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



Entrar Agora
×
×
  • Criar Novo...