Para criar um gráfico com Python dentro do Excel, digite =PY( em uma célula, escreva um código usando a biblioteca Matplotlib referenciando os dados de uma Tabela do Excel com xl(“NomeDaTabela[Coluna]”), e confirme com Ctrl+Enter — o resultado aparece como uma imagem do gráfico direto dentro da célula.
Você já usou os gráficos nativos do Excel, mas sentiu falta de um visual mais sofisticado — como um gráfico com curva de densidade, um box plot ou um heatmap — que o Excel tradicional simplesmente não sabe desenhar sozinho, sem depender de complementos externos ou de exportar tudo para outro programa?
Antes do Python no Excel, resolver isso exigia sair da planilha, levar os dados para o Python em outro ambiente (Jupyter, Google Colab), gerar o gráfico lá e trazer a imagem de volta colada manualmente — um processo lento e que quebra a conexão com os dados originais, exigindo repetir tudo de novo a cada atualização.
Neste artigo iremos mostrar o passo a passo completo para gerar um gráfico com Python direto dentro de uma célula do Excel, com um exemplo prático usando dados reais de vendas mês a mês.
Passo 1: organizando os dados em uma Tabela do Excel
Antes de escrever qualquer código Python, organize seus dados como uma Tabela do Excel de verdade (selecione o intervalo e aperte Ctrl+T), o que dá um nome à tabela e permite referenciá-la dentro do código Python de forma simples, sem precisar apontar para endereços soltos de célula. Considere o exemplo a seguir, com uma tabela chamada TabelaVendas:
| Mês | Vendas (R$) |
|---|---|
| Janeiro | 12.500 |
| Fevereiro | 14.200 |
| Março | 9.800 |
| Abril | 16.400 |
Passo 2: ativando a função PY()
Clique em uma célula vazia, de preferência ao lado ou abaixo da tabela de dados, digite =PY( e pressione Tab. O Excel abre um modo de edição especial, maior do que uma célula comum, onde é possível escrever várias linhas de código Python, com destaque de sintaxe (cores diferentes para funções, textos e números), em vez do editor de fórmula de uma linha só usado no restante do Excel.
Passo 3: escrevendo o código do gráfico
Dentro do modo de edição da função PY(), escreva o código usando a biblioteca Matplotlib, já disponível por padrão no Python no Excel, sem precisar instalar nada. Um exemplo completo para gerar um gráfico de barras a partir da tabela de vendas:
import matplotlib.pyplot as plt
dados = xl(“TabelaVendas[#Todos]”, headers=True)
plt.bar(dados[“Mês”], dados[“Vendas (R$)”], color=”#1f4e78″)
plt.title(“Vendas por mês”)
plt.ylabel(“Valor em R$”)
plt
A função xl(“TabelaVendas[#Todos]”, headers=True) é o jeito de trazer os dados da tabela do Excel para dentro do código Python, como se fosse um DataFrame do pandas. A última linha, contendo apenas plt, é o que diz ao Excel para mostrar o gráfico gerado como resultado da célula, em vez de mostrar só um objeto de código sem exibição visual.
Passo 4: confirmando e exibindo o resultado
Depois de escrever o código, confirme com Ctrl+Enter (em vez do Enter comum, que só adicionaria uma nova linha dentro do editor). O Excel processa o código na nuvem da Microsoft e devolve o gráfico como uma miniatura de imagem dentro da célula. Clique na miniatura e escolha o ícone de imagem que aparece ao lado (em vez de “Valor Python”), para exibir o gráfico em tamanho maior, redimensionável arrastando as bordas da célula.
Ajustando cores e título do gráfico
Como o gráfico é gerado pelo código, qualquer ajuste visual — cor das barras, título, nome dos eixos — é feito alterando parâmetros dentro do próprio código Python, e não clicando em elementos do gráfico como no Excel tradicional. Por exemplo, trocar a cor das barras é só mudar o valor de color=”#1f4e78″ para outro código hexadecimal, e trocar o título é editar o texto dentro de plt.title(“…”).
Gráficos além da barra simples
A mesma lógica de código serve para outros tipos de gráfico trocando apenas a função do Matplotlib: plt.plot() para linha, plt.scatter() para dispersão, e bibliotecas como seaborn (também disponível por padrão) para gráficos mais avançados, como sns.boxplot() para box plot ou sns.heatmap() para mapa de calor — todos seguindo o mesmo padrão de trazer os dados com xl() e terminar o código com a variável do gráfico para exibir o resultado.
Disponibilidade
O Python no Excel, incluindo a criação de gráficos com Matplotlib, está disponível para assinantes do Microsoft 365 com Excel atualizado, tanto no Windows quanto no Mac, exigindo conexão com a internet (o código roda na nuvem da Microsoft, em parceria com a Anaconda). O recurso não está disponível em versões perpétuas do Excel (2019, 2021) nem no Excel Online no momento, e não tem equivalente direto no Google Sheets.
Perguntas frequentes
Esse artigo é igual ao que vocês já publicaram sobre visualizações competindo com o Power BI?
É um tema relacionado, mas com foco diferente. O artigo sobre visualizações e Power BI dá um panorama de vários recursos (Python, Plotly, sparklines, formatação condicional). Este artigo aqui foca só no passo a passo prático de gerar um único gráfico com Python, célula por célula, incluindo a sintaxe exata da função =PY().
O gráfico gerado por Python fica travado, ou dá para editar as cores e o título depois?
Dá para editar, mas de um jeito diferente do gráfico nativo do Excel. Como o gráfico é uma imagem gerada pelo código Python, qualquer mudança de cor, título ou estilo precisa ser feita alterando o próprio código dentro da célula =PY() (por exemplo, adicionando plt.title(“texto”) ou mudando o parâmetro de cor), e não clicando em elementos do gráfico como se faz com um gráfico comum do Excel.
Preciso saber programar em Python de verdade para usar esse recurso?
Ajuda bastante conhecer o básico da biblioteca Matplotlib, mas para gráficos simples (barra, linha, dispersão) é possível copiar um modelo pronto de código e só trocar o nome da tabela e das colunas, sem precisar entender profundamente a linguagem Python.
Compartilhe ou Comente
Se você curtiu esse artigo aonde mostramos como criar um gráfico com Python dentro do Excel usando a função =PY(), compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.
Você já tinha experimentado a função =PY() no Excel antes? Prefere os gráficos nativos do Excel ou os gerados com Python e Matplotlib? Conta para nós nos comentários!