Strasmore Research
Aprendizado Matt ConnorPor Matt Connor · data as of August 21, 2026 · refreshed weekly

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.

QueryDividendos por ação da Coca-Cola, por data ex-dividendo
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_date
Run this yourself

A 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.

QueryDividendos pagos no último ano vs. quatro vezes o 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 DESC
Run this yourself

Ordenada 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.

QueryPagamentos classificados como extraordinários, não recorrentes, por mês
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 month
Run this yourself

Em 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.

QueryDividendos da Coca-Cola nos últimos 12 meses e yield no período, mês a mês
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 month
Run this yourself

A 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.

#dividend yield#google sheets#spreadsheets#dividends#tools