3
respostas

[Dúvida] Retornos de Medidas Power BI

Prezados,

Tenho uma medida para calcular Leads e Deals de uma mesma tabela e retornar os valores para outra medida de Funil no Power BI, realizo alguns cruzamentos entre eles como o EXCEP e retorna normalmente, porem quando tento usar o INTERSECT ou busco fazer de outra forma ele se perde e não retorna os dados de funil, porem trazendo o valor cheio funciona normalmente.

Pipeline = 
CALCULATE(
    [FunilOportunidades],
    ALLSELECTED(dFunnel[funnel_name]),
    dFunnel[order] >= MAX(dFunnel[order])
)
FunilOportunidades = 

VAR vLeads =
    SELECTCOLUMNS(
        FILTER(
        fCRM,
        fCRM[Module] = "Leads"
        ),
        "idL", fCRM[id]
        )

VAR vDeals = 
    SELECTCOLUMNS(
        FILTER(
        fCRM,
        fCRM[Module] = "Deals"        
        ),
        "idD", fCRM[converted_from_lead_id]
    )

VAR vLeadsNotDeals =
    EXCEPT(
        vLeads,
        vDeals
    )

VAR vDealsInLeads =
    INTERSECT(
        vDeals,
        vLeads
    )   

VAR vDealsTeste = 
    CALCULATE(
        COUNTROWS(
        FILTER(
            fCRM,
            fCRM[Module] = "Deals"
            && fCRM[converted_from_lead_id] IN vLeads
            )
        )
    )


RETURN 
    COUNTROWS(vLeadsNotDeals) + COUNTROWS(vDealsInLeads)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Se o retorno for:

RETURN 
    COUNTROWS(vLeadsNotDeals) + COUNTROWS(vDealsInLeads)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ele entende normalmente, porem tenho que trazer apenas os Deals relacionados a Leads do mesmo período, sem essa distinção ele pode retornar valores de Deals associados a Leads anteriores, mas foram criados nesse período.

Existe algum ajuste a ser feito, ou devo fazer de outra forma?

3 respostas

Olá, Thiago! Como vai?

Para garantir que os Deals estejam relacionados aos Leads do mesmo período, você pode precisar ajustar a lógica para filtrar os dados pelo período desejado. Vou deixar abaixo um exemplo que inclui a filtragem pelo período diretamente nas variáveis vLeads e vDeals.

→ Adicionar uma variável para capturar o período atual e usá-la para filtrar os Leads e Deals:

FunilOportunidades =

VAR vCurrentPeriod = MAX(dFunnel[order])

VAR vLeads =
    SELECTCOLUMNS(
        FILTER(
            fCRM,
            fCRM[Module] = "Leads"
            && fCRM[Period] = vCurrentPeriod
        ),
        "idL", fCRM[id]
    )

VAR vDeals =
    SELECTCOLUMNS(
        FILTER(
            fCRM,
            fCRM[Module] = "Deals"
            && fCRM[Period] = vCurrentPeriod
        ),
        "idD", fCRM[converted_from_lead_id]
    )

VAR vLeadsNotDeals =
    EXCEPT(
        vLeads,
        vDeals
    )

VAR vDealsInLeads =
    INTERSECT(
        vDeals,
        vLeads
    )

RETURN
    COUNTROWS(vLeadsNotDeals) + COUNTROWS(vDealsInLeads)

→ No exemplo, assumi que você tem uma coluna Period na tabela fCRM que pode ser usada para filtrar os registros pelo período atual. Se a sua tabela tiver outra coluna que represente o período (como uma data), você pode ajustar o filtro conforme necessário.

Espero ter ajudado!

Abraço ✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Mai, Boa tarde!

Obrigado pelo retorno, mas infelizmente essa abordagem não vai funcionar, dentro da tabela dFunnel tenho os dados apenas para ordenar o retorno do funil

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Busquei realizar esse cruzamento de diversas formas, utilizando o INTERSECT, utilizando filtros de ids, datas.. Nada funcionou com esperado, parece que ele perde referência das colunas de Deals.

Olá, Thiago! :)

Lamento que não tenha conseguido resolver o seu problema. Como você já tentou várias abordagens e eu não tenho acesso a todo projeto, é delicado dizer uma solução que seja ideal para o seu caso, no entanto, pensei em algumas possibilidades que você pode testar e ver qual funciona melhor para a sua situação.

  • Você pode considerar criar uma tabela auxiliar que conterá apenas os dados específicos que você precisa para o funil e usar essa tabela para alimentar a visualização.
  • Outra opção é criar algumas colunas calculadas na tabela fCRM para identificar se o registro é um Lead válido ou um Deal convertido do período e então usar isso como filtro na medida.
  • Se o principal problema é garantir que os Deals sejam do mesmo período que os Leads, você poderia filtrar por datas e depois jogar para o funil.
  • Outra opção seria mudar a visualização, mostrar os dados em outras visualizações, como um gráfico de cascata ou bolhas (por exemplo).

Desejo sucesso e que dê tudo certo! Continue firme nos estudos! ✨✨

Fico à disposição!