Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos

Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos
#ProgramaçãoGlobal #BrazilSFE #PowerBI #PBI #AnaliseDePrescrições #ConsolidaçãoDeDados #DAX #EstruturaçãoDeDados #Extração de Dados #FunçõesDeTexto #IndústriaFarmacêutica #InteligênciaDNegocios #KPI #MédicasDAX #Prescrições #RelatoriosFarmacêuticos #SoluçõesDAX #TecnicasDAX #TransformaçãoDeDados #VariáveisDAX

DOE UM CAFÉ

 Compre OS LIVROS DESTA SÉRIE 



A análise de Prescrições realizadas por médicos em diferentes mercados geográficos representa um desafio fundamental para profissionais que trabalham com inteligência de negócios na Indústria Farmacêutica. Os dados relacionados a prescrições frequentemente chegam aos analistas em formatos heterogêneos, onde múltiplas informações são consolidadas em campos de texto descritivo, exigindo transformações sofisticadas antes que possam gerar insights significativos. O Power BI, combinado com a linguagem DAX, oferece ferramentas poderosas para extrair, processar e agregar essas informações de forma eficiente e confiável.

A necessidade de estruturar dados desorganizados é especialmente crítica quando se trabalha com informações de prescrições, pois cada mercado pode ter suas próprias convenções de nomenclatura e formatação. Muitas laboratórios farmacêuticos enfrentam o desafio de consolidar dados de múltiplas fontes, cada uma com sua própria estrutura, gerando campos que contêm tanto informações descritivas quanto dados numéricos relevantes para análise. Sem uma abordagem sistemática para extrair esses números, os analistas acabam com visões parciais ou imprecisas do comportamento prescritivo em seus mercados.

A técnica que apresentaremos neste artigo resolve especificamente o problema de extrair valores numéricos que representam quantidades de prescrições, quando esses valores estão embutidos em textos descritivos. Imagine um campo que contenha informações como "MERCADO 1 - PXs: 2450" ou "MERCADO 2 - PXs: 1280", onde o prefixo identificador do mercado ou categoria está concatenado com a quantidade de prescrições após o marcador "PXs: ". Extrair apenas o número, sem o texto descritivo, é essencial para análises posteriores.




A solução proposta utiliza funções nativas do DAX como FIND, MID, VALUE, TRIM e IFERROR em conjunto com variáveis (VAR) para criar uma lógica robusta e escalável. Essa abordagem não apenas resolve o problema imediato de extração, mas também estabelece um padrão que pode ser replicado para outras situações similares em seus projetos de Power BI. O resultado é uma coluna calculada que agrega múltiplos campos-fonte, cada um tratado individualmente, retornando um total consolidado.

A utilidade prática dessa técnica transcende a simples extração de números. Quando um hospital, clínica ou rede de saúde precisa entender o volume prescritivo em diferentes categorias terapêuticas, necessita comparar a performance entre mercados distintos, ou deseja monitorar tendências de prescrição ao longo do tempo, essa coluna calculada torna-se um alicerce fundamental. Ela permite que painéis gerenciais mostrem números confiáveis e auditáveis, reduzindo dependências de relatórios manuais ou cálculos offline.

Considere o cenário real onde um gerente comercial precisa verificar rapidamente o total de prescrições de uma classe terapêutica específica em múltiplos mercados. Sem a agregação adequada, ele teria que consultar sete campos diferentes em sua análise, fazendo contas mentais ou recorrendo a cálculos manuais. Com a coluna calculada aqui proposta, um simples visual no Power BI pode exibir esse total de forma instantânea, permitindo tomadas de decisão mais ágeis e informadas.


✔ Programação GLOBAL® - Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos


A implementação da solução começa com a compreensão das funções individuais envolvidas. A função FIND("PXs: ", [Campo]) localiza a posição exata onde o texto "PXs: " aparece no campo. Isso é crucial porque não sabemos a priori onde esse marcador está posicionado na string, pois pode haver prefixos de comprimento variável. Uma vez localizada essa posição, adicionamos cinco unidades para pular os cinco caracteres que compõem "PXs: " (incluindo o espaço), alcançando o primeiro caractere do número que desejamos extrair.

A função MID([Campo], Posição_Inicial, Comprimento) então extrai uma substring começando da posição calculada. Neste caso, utilizamos um comprimento generoso (999 caracteres) porque não sabemos quantos dígitos o número possui, mas sabemos que qualquer substring iniciada naquela posição e contendo 999 caracteres certamente capturará todo o valor numérico desejado. O MID automaticamente truncará a extração no final da string se ela tiver menos de 999 caracteres, evitando erros.

Após a extração, a função VALUE converte a string obtida em um número inteiro. No entanto, como a substring extraída pode conter espaços em branco adicionais ou caracteres não numéricos, a função TRIM é aplicada primeiro para limpar os espaços. Essa combinação TRIM + VALUE garante que variações menores de formatação (como espaços extras) não causem falhas de conversão.


✔ Programação GLOBAL® - Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos


A função IFERROR encapsula todo esse processo, retornando zero sempre que qualquer passo falhar. Isso é especialmente importante em análises de prescrições, onde dados incompletos ou mal formatados são comuns. Retornar zero em caso de erro, ao invés de exibir uma mensagem de erro que interrompe visualizações, mantém a integridade visual dos relatórios enquanto sinaliza claramente que aquele campo não continha dados válidos.

O uso de variáveis (VAR) traz múltiplos benefícios para essa implementação. Primeira, melhora significativamente a legibilidade do código, permitindo que cada extração seja nomeada descritivamente (Px_01, Px_02, etc.). Segunda, reduz a necessidade de repetir a mesma lógica múltiplas vezes, tornando o código mais maintível. Terceira, em versões recentes do Power BI, o motor de cálculo otimiza melhor o uso de variáveis, podendo resultar em melhor performance.


✔ Programação GLOBAL® - Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos


A agregação final é simplesmente a soma de todas as sete variáveis: Px_01 + Px_02 + Px_03 + Px_04 + Px_05 + Px_06 + Px_07. Essa operação retorna um total consolidado que representa o volume total de prescrições em todas as categorias de mercado consideradas. Esse total é exatamente o que aparece na coluna calculada, sendo atualizado dinamicamente sempre que os dados de origem são atualizados.

Quando implementa essa solução em um contexto real, é essencial considerar a performance. Uma coluna calculada no Power BI é computada em tempo de carregamento do modelo, não no momento da consulta. Portanto, para grandes volumes de dados (milhões de registros), a primeira abordagem proposta, utilizando claramente as variáveis nomeadas, oferece melhor legibilidade, enquanto a segunda abordagem, com a soma direta de expressões, pode oferecer um ganho marginal de performance.

✔ Programação GLOBAL® - Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos



A validação dos dados é uma etapa crítica e frequentemente negligenciada. Após implementar a coluna calculada, recomenda-se verificar alguns registros manualmente, certificando-se de que os números extraídos correspondem efetivamente aos valores presentes nos campos-fonte. Um simples teste pode envolver seleção de alguns registros com valores conhecidos e confirmação visual no Power BI de que as extrações estão corretas.

Um aspecto particularmente valioso dessa técnica é sua adaptabilidade. Caso alguns dos seus campos-fonte contenham formatos ligeiramente diferentes (por exemplo, "PXs:2450" sem espaço após os dois-pontos), a função TRIM continua funcionando perfeitamente. Caso alguns campos estejam ocasionalmente vazios ou não contenham o marcador "PXs: ", a função IFERROR tratará elegantemente essas situações, retornando zero automaticamente.

Para profissionais que trabalham em múltiplas linhas terapêuticas ou em organizações com estruturas comerciais complexas, considerar variações dessa técnica é prudente. Por exemplo, se você precisasse extrair não apenas o total geral, mas também analisar cada categoria individualmente, poderia criar colunas calculadas adicionais Px_Cat_01, Px_Cat_02, etc., cada uma focada em uma categoria específica. Isso ampliaria sua capacidade analítica sem adicionar significativo overhead computacional.


✔ Programação GLOBAL® - Extração e Agregação de Dados de Prescrições em Power BI: Uma Solução DAX para Análise de Mercados Farmacêuticos



A integração dessa coluna calculada em dashboards e relatórios abre possibilidades analíticas expansivas. Você pode criar gráficos que mostram a distribuição de prescrições por mercado ao longo do tempo, compará-la com metas comerciais, identificar sazonalidades, ou mesmo correlacioná-la com variáveis de marketing e promoção. O total agregado torna-se um KPI confiável para monitoramento executivo.

Na indústria farmacêutica, onde regulações e auditorias são norma, a capacidade de rastrear exatamente como um número foi calculado é inestimável. Uma coluna calculada em DAX deixa uma trilha clara e auditável da lógica aplicada. Ao contrário de cálculos manuais em planilhas Excel ou valores hardcoded em relatórios, a solução DAX é transparente, reprodutível e facilmente auditável para qualquer stakeholder interessado.

Considerando a evolução das versões do Power BI, é relevante mencionar que a função REGEX, disponível em versões mais recentes, oferece uma alternativa ainda mais robusta para esse tipo de problema. Usando expressões regulares, você poderia descrever o padrão "PXs: seguido de dígitos" de forma mais concisa e potencialmente mais tolerante a variações no formato. No entanto, a solução apresentada neste artigo funciona em todas as versões modernas do Power BI, garantindo compatibilidade ampla.

A documentação adequada do código é especialmente importante quando se trabalha com lógicas de extração de dados. Incluir comentários que explicam a finalidade de cada VAR, a data de implementação, e o contexto de negócio para o qual foi desenvolvida, torna o código muito mais maintível quando outros analistas ou versões futuras de si mesmo necessitarem revisá-lo. Recomenda-se fortemente incluir metadados como autor, data e horário, conforme ilustrado nos exemplos fornecidos.

Finalmente, essa técnica demonstra um princípio fundamental em análise de dados: muitos dos desafios mais significativos em projetos de BI não envolvem lógica comercial complexa, mas sim a capacidade de extrair, limpar e consolidar dados de formatos não ideais. Dominar técnicas como essa coloca você entre os profissionais mais valiosos em qualquer organização que lida com dados heterogêneos. A capacidade de transformar textos desorganizados em métricas confiáveis e agregadas é o alicerce de qualquer análise de dados bem-sucedida.

Aqui estão os exemplos de implementação adaptados para contexto genérico:


Exemplo 1 - Abordagem Estruturada:


Total_Prescricoes = 
VAR Px_Categoria_01 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_01], FIND("PXs: ", [Campo_Mercado_01]) + 5, LEN([Campo_Mercado_01])))), 0)
VAR Px_Categoria_02 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_02], FIND("PXs: ", [Campo_Mercado_02]) + 5, LEN([Campo_Mercado_02])))), 0)
VAR Px_Categoria_03 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_03], FIND("PXs: ", [Campo_Mercado_03]) + 5, LEN([Campo_Mercado_03])))), 0)
VAR Px_Categoria_04 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_04], FIND("PXs: ", [Campo_Mercado_04]) + 5, LEN([Campo_Mercado_04])))), 0)
VAR Px_Categoria_05 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_05], FIND("PXs: ", [Campo_Mercado_05]) + 5, LEN([Campo_Mercado_05])))), 0)
VAR Px_Categoria_06 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_06], FIND("PXs: ", [Campo_Mercado_06]) + 5, LEN([Campo_Mercado_06])))), 0)
VAR Px_Categoria_07 = IFERROR(VALUE(TRIM(MID([Campo_Mercado_07], FIND("PXs: ", [Campo_Mercado_07]) + 5, LEN([Campo_Mercado_07])))), 0)
RETURN
Px_Categoria_01 + Px_Categoria_02 + Px_Categoria_03 + Px_Categoria_04 + Px_Categoria_05 + Px_Categoria_06 + Px_Categoria_07

// Author: André Bernardes - andreluizbernardess@gmail.com
// Data: 16/12/2025 - Horário: 13:23:45
// Descrição: Extrai valores numéricos após "PXs: " em 7 campos de mercado distintos e soma o total de prescrições
// Função: Cada VAR captura a substring a partir de "PXs: ", converte em número inteiro e trata erros com zero
// IFERROR: Garante que valores inválidos ou ausentes retornem 0 ao invés de erro na visualização
// FIND: Localiza a posição de "PXs: " + 5 caracteres para pular o texto marcador
// VALUE: Converte texto em número inteiro
// TRIM: Remove espaços em branco desnecessários antes e após a extração

 

Exemplo 2 - Abordagem Compacta:


Total_Prescricoes = 
IFERROR(VALUE(TRIM(MID([Campo_Mercado_01], FIND("PXs: ", [Campo_Mercado_01]) + 5, 999))), 0) +
IFERROR(VALUE(TRIM(MID([Campo_Mercado_02], FIND("PXs: ", [Campo_Mercado_02]) + 5, 999))), 0) +
IFERROR(VALUE(TRIM(MID([Campo_Mercado_03], FIND("PXs: ", [Campo_Mercado_03]) + 5, 999))), 0) +
IFERROR(VALUE(TRIM(MID([Campo_Mercado_04], FIND("PXs: ", [Campo_Mercado_04]) + 5, 999))), 0) +
IFERROR(VALUE(TRIM(MID([Campo_Mercado_05], FIND("PXs: ", [Campo_Mercado_05]) + 5, 999))), 0) +
IFERROR(VALUE(TRIM(MID([Campo_Mercado_06], FIND("PXs: ", [Campo_Mercado_06]) + 5, 999))), 0) +
IFERROR(VALUE(TRIM(MID([Campo_Mercado_07], FIND("PXs: ", [Campo_Mercado_07]) + 5, 999))), 0)

// Author: André Bernardes - andreluizbernardess@gmail.com
// Data: 16/12/2025 - Horário: 13:23:45
// Versão compacta com excelente performance - soma direta de 7 extrações de prescrições
// Ideal para modelos com grande volume de registros




Sim, nós sabemos, nós sabemos, nós sabemos…


Ver essa mensagem é irritante. Sabemos disso. (Imagine como é escrevê-la...). Mas também é extremamente importante. Um dos maiores trunfos do ✔ Programação GLOBAL® é seu modelo parcialmente financiado pelos leitores. 


1. O financiamento dos leitores significa que podemos cobrir o que quisermos. Não sujeitos a caprichos de um proprietário bilionário. Ninguém pode nos dizer o que não dizer ou o que não reportar.


2. O financiamento dos leitores significa que não precisamos correr atrás de cliques e tráfego. Não buscamos desesperadamente a sua atenção por si só: buscamos as histórias que nossa equipe editorial considera importantes e que merecem o seu tempo.


3. O financiamento dos leitores significa que podemos manter nosso blog aberto, permitindo que o maior número possível de pessoas leia artigos de qualidade do mundo todo.


O apoio de leitores como você torna tudo isso possível. No momento, apenas 2,4% dos nossos leitores regulares ajudam a financiar nosso trabalho. Se você quer ajudar a proteger nossa independência editorial, considere juntar-se a nós hoje mesmo.


Valorizamos qualquer quantia que possa nos dar, mas apoiar mensalmente é o que causa maior impacto, permitindo um investimento maior em nosso trabalho mais crucial e destemido, assim esperamos que considere apoiar-nos. Obrigado!

👉 Siga André Bernardes no LinkedinClique aqui e contate-me via What's App.

Comente e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com


 

 Compre OS LIVROS DESTA SÉRIE 

 Série Donut Project 
DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


eBook - PT - Série DONUT PROJECT - Volume 07 - VBA TOP 50 Códigos Mais Importantes - Access — André Luiz BernardeseBook - PT - Série DONUT PROJECT - Volume 07 - VBA TOP 50 Códigos Mais Importantes - Excel — André Luiz Bernardes eBook - PT - Série DONUT PROJECT - Volume 07 - VBA TOP 50 Códigos Mais Importantes - Outlook — André Luiz Bernardes eBook - PT - Série DONUT PROJECT - Volume 08 - VBA TOP 50 Códigos Mais Importantes - Project — André Luiz Bernardes  eBook - PT - Série DONUT PROJECT - Volume 08 - VBA TOP 50 Códigos Mais Importantes - Project — André Luiz Bernardes  eBook - PT - Série DONUT PROJECT - Volume 08 - VBA TOP 50 Códigos Mais Importantes - Word — André Luiz Bernardes

Nenhum comentário:

Postar um comentário

diHITT - Notícias