Dividend Yield no Google Sheets: Duas Soluções
O GOOGLEFINANCE não retorna dividend yield. Veja duas fórmulas para calcular o yield dos últimos doze meses e o valor futuro com dados da sua planilha.
Para calcular o dividend yield no Google Sheets, é preciso montar o número manualmente. A função GOOGLEFINANCE retorna preço, EPS, P/L, valor de mercado e uma longa lista de outros campos de cotação, mas não retorna o dividend yield: =GOOGLEFINANCE("AAPL","yield") retorna #N/A, e nenhuma outra grafia do termo funciona. Há duas alternativas confiáveis. Calcule o yield dos últimos doze meses a partir de uma coluna de dividendos mantida na planilha ou informe em uma célula a taxa futura declarada e faça a divisão.
Por que o GOOGLEFINANCE não tem um atributo de dividend yield
Os atributos da função vêm em duas famílias. Há os campos de cotação em tempo real, obtidos com dois argumentos: price, volume, pe, eps, marketcap, high52, changepct e cerca de uma dúzia de outros. Depois, há os campos de preços históricos, obtidos com uma data ou um intervalo de datas: open, high, low, close, volume. Os registros de dividendos não pertencem a nenhuma das duas famílias. Nenhum atributo retorna um pagamento ou um histórico de distribuições. Assim, o numerador do dividend yield precisa vir de fora da função.
Dividend yield é o total anual de dividendos por ação dividido pelo preço por ação, expresso em percentual. A parte do preço cabe em uma célula. A parte dos dividendos exige trabalho. Se esse indicador ainda é novo para você, o que o dividend yield realmente mede explica o conceito antes da mecânica da planilha, e como calcular o dividend yield mostra a operação matemática.
Este é o material bruto: cada pagamento feito pela empresa ao longo de aproximadamente três anos. Cada linha mostra uma data ex-dividendo — a data a partir da qual quem compra a ação não recebe o próximo pagamento — ao lado do valor pago em dinheiro por ação.
O SQL exato por trás de cada número
SELECT
toString(ex_dividend_date) AS ex_date,
formatDateTime(ex_dividend_date, '%b %e, %Y') AS ex_date_label,
round(toFloat64(payment), 4) AS cash_amount,
round(toFloat64(payment) * 4, 4) AS annualized_run_rate
FROM
(
SELECT
ex_dividend_date,
max(cash_amount) AS payment
FROM global_markets.stocks_dividends
WHERE ticker = 'KO'
AND ex_dividend_date >= today() - 1120
AND ex_dividend_date <= today()
GROUP BY ex_dividend_date
)
ORDER BY ex_dividend_dateA Coca-Cola pagou $0.46 por ação em Sep 14, 2023 e $0.53 em Jun 15, 2026, totalizando 12 pagamentos no período. A segunda linha do gráfico mostra cada pagamento multiplicado por quatro: a taxa anual implícita caso o pagamento daquele trimestre se repetisse durante todo o ano. Ela sobe uma vez por ano e permanece estável entre esses reajustes. É nesse movimento que a maioria dos cálculos de dividend yield em planilhas dá errado. O histórico completo está em histórico de dividendos da Coca-Cola.
Duas formas de calcular o dividend yield no Google Sheets
O primeiro método usa um yield histórico calculado a partir da sua própria coluna. Insira as datas ex-dividendo na coluna A e o valor em dinheiro por ação na coluna B, uma linha por pagamento. Em seguida:
- Total dos últimos doze meses:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()) - Cotação atual:
=GOOGLEFINANCE("KO","price") - Yield dos últimos doze meses, com a célula formatada como porcentagem:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())/GOOGLEFINANCE("KO","price") - Número de pagamentos no mesmo período, para conferência:
=COUNTIFS($A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())
EDATE(TODAY(),-12) corresponde ao mesmo dia do calendário de doze meses atrás. Assim, a janela avança automaticamente. Formate a célula do yield como porcentagem, em vez de multiplicar o resultado por 100 dentro da fórmula. Uma planilha que faça as duas coisas exibirá 290% quando o correto seria 2,9%.
O segundo método usa um yield projetado com base na taxa declarada. Insira em D2 o valor por ação declarado mais recentemente e, em E2, o número de pagamentos por ano:
- Yield projetado:
=D2*E2/GOOGLEFINANCE("KO","price")
Nada automatiza D2. O conselho de administração declara uma taxa. Você consulta essa informação no anúncio e a insere manualmente. Essa é a forma correta de calcular um yield projetado. A escolha entre os dois numeradores é o tema central de yield de dividendos histórico versus projetado.
Duas observações adicionais sobre a função. As cotações têm atraso de até 20 minutos. O atraso de uma célula específica pode ser consultado com =GOOGLEFINANCE("KO","datadelay"). Além disso, uma busca histórica retorna uma matriz de duas linhas por duas colunas, e não um número. Por isso, envolva-a na fórmula: =INDEX(GOOGLEFINANCE("KO","close",DATE(2026,6,30)),2,2) retorna apenas a cotação de fechamento.
A anualização e o erro que ela oculta
A fórmula incorreta mais comum em uma planilha de dividendos multiplica o pagamento mais recente por quatro. Ela funciona até o momento em que a empresa aumenta o dividendo. Depois do aumento, três dos quatro pagamentos no período móvel de doze meses foram feitos à taxa antiga. Multiplicar a nova taxa por quatro superestima o que o acionista efetivamente recebeu.
O painel abaixo dimensiona essa diferença para oito grandes pagadoras. Ele mostra quanto cada empresa pagou por ação nos últimos doze meses, ao lado de quatro vezes seu pagamento mais recente.
O SQL exato por trás de cada número
SELECT
ticker,
round(toFloat64(sum(cash_amount)), 4) AS paid_last_12m,
round(toFloat64(argMax(cash_amount, ex_dividend_date)) * 4, 4) AS latest_x4,
round((toFloat64(argMax(cash_amount, ex_dividend_date)) * 4
/ toFloat64(sum(cash_amount)) - 1) * 100, 2) AS gap_pct,
count() AS payment_count
FROM
(
SELECT
ticker,
ex_dividend_date,
max(cash_amount) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('KO', 'JNJ', 'PG', 'AAPL', 'MSFT', 'CVX', 'ABBV', 'IBM')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, ex_dividend_date
)
GROUP BY ticker
ORDER BY gap_pct DESCOrdenada pela diferença, JNJ aparece no topo. A empresa fez 4 pagamentos que totalizaram $5.24 por ação no período, enquanto quatro vezes seu pagamento mais recente chega a $5.36, 2.29% a mais. Em uma ação com dividend yield próximo de 3%, um erro desse tamanho altera o número exibido em um décimo de ponto percentual ou mais. Isso é suficiente para mudar a ordem de uma lista classificada.
A coluna de contagem de pagamentos é o segundo argumento a favor de SUMIFS, em vez da multiplicação. Um período móvel de doze meses nem sempre contém exatamente quatro pagamentos trimestrais. As datas ex-dividendo variam alguns dias a cada ano, e uma janela pode incluir três ou cinco pagamentos. COUNTIFS mostra qual deles ocorreu antes de você confiar no total.
Dividendos extraordinários não são run rate
O outro erro clássico é tratar um pagamento isolado como parte do cronograma. A empresa distribui o excesso de caixa em um único pagamento elevado, a SUMIFS inclui esse valor no total dos últimos doze meses e a célula de yield dispara. Doze meses depois, o valor volta silenciosamente ao patamar anterior.
Esses pagamentos não são raros. O painel contabiliza, mês a mês, todos os pagamentos no mercado americano que o calendário de dividendos classifica como extraordinários, e não como parte de um cronograma recorrente.
O SQL exato por trás de cada número
SELECT
toString(month_start) AS month,
formatDateTime(month_start, '%b %Y') AS month_label,
countIf(freq = '0') AS one_time_payments,
round(countIf(freq = '0') / count() * 100, 2) AS one_time_share_pct
FROM
(
SELECT
toStartOfMonth(ex_dividend_date) AS month_start,
ticker,
ex_dividend_date,
ifNull(toString(any(frequency)), 'na') AS freq
FROM global_markets.stocks_dividends
WHERE ex_dividend_date >= toStartOfMonth(today() - 730)
AND ex_dividend_date < toStartOfMonth(today())
GROUP BY month_start, ticker, ex_dividend_date
)
GROUP BY month_start
ORDER BY monthEm Jul 2026, o mês completo mais recente, 111 pagamentos tinham a marcação de pagamento único. Isso representou 2.91% de tudo o que ficou ex-dividendo naquele mês. Mais cedo ou mais tarde, um total móvel de doze meses incluirá um deles.
A solução é usar uma coluna de sinalização. Insira regular ou special na coluna C, ao lado de cada pagamento, e depois adicione esse campo como critério:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY(),$C$2:$C,"regular")
Mantenha as linhas dos pagamentos extraordinários na planilha. Elas representam caixa efetivamente recebido e fazem parte do histórico dos pagamentos. Mas não devem entrar em um número destinado a descrever uma taxa recorrente.
O que a célula final exibe
Um trailing yield calculado dessa forma tem dois componentes, e eles mudam em ritmos diferentes. O total de dividendos muda algumas vezes por ano, quando um pagamento entra ou sai da janela de análise ou quando ocorre um aumento. O preço muda em todas as sessões. O painel abaixo executa o cálculo final mês a mês nos últimos dois anos para o mesmo pagador.
O SQL exato por trás de cada número
WITH
month_close AS
(
SELECT
toLastDayOfMonth(date) AS month_end,
argMax(close, date) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'KO'
AND date >= toStartOfMonth(today() - 730)
AND date < toStartOfMonth(today())
GROUP BY month_end
),
payouts AS
(
SELECT
ex_dividend_date,
max(cash_amount) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'KO'
AND ex_dividend_date >= today() - 1160
AND ex_dividend_date <= today()
GROUP BY ex_dividend_date
)
SELECT
toString(month_end) AS month,
formatDateTime(month_end, '%b %Y') AS month_label,
round(ttm, 4) AS ttm_dividends,
round(ttm / close_px * 100, 2) AS trailing_yield_pct
FROM
(
SELECT
m.month_end AS month_end,
toFloat64(any(m.close_px)) AS close_px,
toFloat64(sumIf(p.cash_amount,
(p.ex_dividend_date > subtractYears(m.month_end, 1))
AND (p.ex_dividend_date <= m.month_end))) AS ttm
FROM month_close AS m
CROSS JOIN payouts AS p
GROUP BY m.month_end
)
ORDER BY monthA linha de dividendos sobe em degraus e depois permanece estável. A linha do yield muda todos os meses no mesmo período. Em Aug 2024, o total acumulado estava em $1.89 por ação, contra um yield de 2.61%; em Jul 2026, o total estava em $2.08 e o yield era 2.37%. Uma célula de yield que muda enquanto ninguém alterou a coluna de dividendos está fazendo exatamente o que um trailing yield faz: o denominador mudou.
Quando um ticker funcionar, copie o bloco para baixo para cada posição e pondere os resultados pelo valor de mercado, em vez de calcular a média dos yields. Essa etapa é dividend yield ponderado da carteira.
Perguntas frequentes
A GOOGLEFINANCE tem um atributo de dividend yield?
Não. A função abrange campos de cotações em tempo real e preços históricos, mas nenhum deles corresponde a dividendos ou yield. =GOOGLEFINANCE("KO","yield") retorna #N/A. Em uma planilha, o yield é calculado a partir de um valor de dividendo fornecido por você e de um preço retornado pela função.
Como calculo o dividend yield acumulado no Google Sheets?
Mantenha as datas ex-dividendo em uma coluna e o valor em dinheiro por ação na coluna seguinte. Some os últimos doze meses com =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()), divida esse total por =GOOGLEFINANCE("KO","price") e formate a célula do resultado como porcentagem.
Por que meu dividend yield é diferente do exibido na página da corretora?
Na maioria das vezes, por causa do numerador. Uma página que informa um yield projetado anualiza a taxa atualmente declarada. Já um SUMIFS de doze meses retorna um valor acumulado que ainda inclui pagamentos feitos à taxa anterior. Um dividendo extraordinário dentro do período amplia ainda mais a diferença.
Como excluo um dividendo extraordinário do yield?
Adicione uma coluna para identificar cada pagamento como regular ou extraordinário. Depois, passe essa coluna como um par adicional de critério no SUMIFS. O pagamento extraordinário continua na planilha, mas fica fora do yield.
O Google Sheets pode importar o histórico de dividendos automaticamente?
Não por meio do GOOGLEFINANCE. A coluna de dividendos é preenchida manualmente ou colada a partir de uma fonte que publica os registros de pagamentos. Esse é o único passo manual nos dois métodos apresentados nesta página.
Cada painel inclui o SQL que o produziu. Abra um painel para ver exatamente como um total foi calculado. As mesmas perguntas podem ser feitas em linguagem simples no terminal Strasmore.