Dividend Yield di Google Sheets: Dua Perbaikan
GOOGLEFINANCE tidak memiliki atribut dividend yield di Google Sheets. Gunakan dua formula: trailing yield dari dividen yang dibayarkan dan forward yield.
Untuk menghitung dividend yield di Google Sheets, Anda harus menyusun angkanya sendiri. GOOGLEFINANCE mengembalikan price, EPS, PE, market cap, dan banyak field quote lainnya, tetapi dividend yield tidak termasuk di dalamnya: =GOOGLEFINANCE("AAPL","yield") mengembalikan #N/A, dan penulisan lain untuk istilah tersebut juga tidak menghasilkan nilai. Ada dua workaround yang dapat diandalkan. Hitung trailing yield dari kolom dividen yang Anda kelola di sheet, atau masukkan forward rate yang telah diumumkan ke dalam sel lalu lakukan pembagian.
Mengapa GOOGLEFINANCE tidak memiliki atribut dividend yield
Atribut fungsi ini terbagi menjadi dua kelompok. Kelompok pertama adalah kolom live quote yang diambil dengan dua argumen: price, volume, pe, eps, marketcap, high52, changepct, dan sekitar selusin atribut lainnya. Kelompok kedua adalah kolom harga historis yang diambil dengan tanggal atau rentang tanggal: open, high, low, close, volume. Catatan dividen tidak termasuk dalam kedua kelompok tersebut. Tidak ada atribut yang mengembalikan riwayat pembayaran atau payout, sehingga numerator yield harus diperoleh dari luar fungsi.
Dividend yield adalah dividen tahunan per saham dibagi harga per saham, lalu dinyatakan sebagai persentase. Komponen harga hanya memerlukan satu sel. Komponen dividen memerlukan lebih banyak pekerjaan. Jika rasio ini masih baru bagi Anda, apa yang sebenarnya diukur dividend yield membahasnya sebelum masuk ke mekanisme spreadsheet, sedangkan cara menghitung dividend yield menjelaskan perhitungannya.
Berikut bahan mentahnya: setiap pembayaran yang dilakukan oleh satu perusahaan pembayar selama sekitar tiga tahun terakhir. Setiap baris memuat tanggal ex-dividend, yaitu tanggal ketika pembeli saham tidak lagi menerima pembayaran berikutnya, serta jumlah kas yang dibayarkan per saham.
SQL tepat di balik setiap angka
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_dateCoca-Cola membayar $0.46 per saham pada Sep 14, 2023 dan $0.53 pada Jun 15, 2026, dengan total 12 pembayaran selama periode tersebut. Garis kedua pada grafik menunjukkan setiap pembayaran dikalikan empat: annual rate yang diimplikasikan jika pembayaran kuartal tersebut berulang sepanjang tahun. Nilainya naik satu kali setiap tahun dan tetap datar di antara kenaikan tersebut. Pola kenaikan inilah yang paling sering menyebabkan kesalahan dalam perhitungan yield di spreadsheet. Catatan lengkapnya tersedia di riwayat dividen Coca-Cola.
Dua cara menghitung dividend yield di Google Sheets
Metode pertama adalah trailing yield yang dihitung dari kolom Anda sendiri. Masukkan tanggal ex-dividend di kolom A dan nilai tunai per saham di kolom B, satu baris untuk setiap pembayaran, lalu:
- Total trailing twelve month:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()) - Harga saat ini:
=GOOGLEFINANCE("KO","price") - Trailing yield, dengan sel diformat sebagai persentase:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())/GOOGLEFINANCE("KO","price") - Jumlah pembayaran dalam periode yang sama, sebagai pemeriksaan:
=COUNTIFS($A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())
EDATE(TODAY(),-12) adalah tanggal kalender yang sama dua belas bulan sebelumnya, sehingga periodenya bergulir secara otomatis. Format sel yield sebagai persentase, bukan mengalikan dengan 100 di dalam formula. Sheet yang melakukan keduanya akan menampilkan 290% ketika yang dimaksud adalah 2,9%.
Metode kedua adalah forward yield berdasarkan rate yang telah diumumkan. Masukkan rate per saham yang paling baru diumumkan di D2 dan jumlah pembayaran per tahun di E2:
- Forward yield:
=D2*E2/GOOGLEFINANCE("KO","price")
Tidak ada yang mengotomatiskan D2. Dewan direksi menetapkan rate, lalu Anda membacanya dari pengumuman dan mengetikkannya. Itulah versi forward yield yang sebenarnya, dan pilihan antara dua pembilang tersebut merupakan inti dari trailing versus forward dividend yield.
Dua catatan singkat tentang fungsi tersebut. Harga memiliki keterlambatan hingga 20 menit, dan keterlambatan pada sel tertentu dapat dibaca dengan =GOOGLEFINANCE("KO","datadelay"). Selain itu, pengambilan data historis menghasilkan array dua kali dua, bukan satu angka. Karena itu, bungkus formula tersebut: =INDEX(GOOGLEFINANCE("KO","close",DATE(2026,6,30)),2,2) hanya menghasilkan harga penutupan.
Langkah annualisasi dan kesalahan yang disembunyikannya
Rumus yang paling sering keliru dalam spreadsheet dividen mengalikan pembayaran terakhir dengan empat. Rumus ini tetap benar sampai perusahaan menaikkan dividennya. Setelah kenaikan tersebut, tiga dari empat pembayaran dalam periode dua belas bulan terakhir masih menggunakan rate lama. Karena itu, pembayaran terbaru dikalikan empat akan melebihkan jumlah yang benar-benar diterima pemegang saham.
Panel di bawah ini mengukur selisih tersebut untuk delapan emiten besar. Panel ini membandingkan total pembayaran per saham selama dua belas bulan terakhir dengan empat kali pembayaran terakhir.
SQL tepat di balik setiap angka
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 DESCBerdasarkan besarnya selisih, JNJ berada di posisi teratas. Emiten tersebut melakukan 4 pembayaran dengan total $5.24 per saham selama periode tersebut. Sementara itu, empat kali pembayaran terakhirnya mencapai $5.36, atau lebih tinggi 2.29%. Pada saham dengan yield sekitar 3%, kesalahan sebesar itu dapat mengubah angka yang ditampilkan setidaknya sepersepuluh percentage point. Perubahan ini cukup untuk mengubah urutan dalam daftar yang diurutkan berdasarkan yield.
Kolom jumlah pembayaran adalah alasan kedua untuk menggunakan SUMIFS, bukan perkalian. Periode dua belas bulan berjalan tidak selalu mencakup tepat empat pembayaran kuartalan. Tanggal ex-dividend bergeser beberapa hari setiap tahun. Karena itu, suatu periode dapat mencakup tiga atau lima pembayaran. COUNTIFS menunjukkan pembayaran mana yang terjadi sebelum Anda mempercayai total tersebut.
Dividen khusus bukan run rate
Kesalahan klasik lainnya adalah menganggap pembayaran satu kali sebagai bagian dari jadwal rutin. Perusahaan membagikan kelebihan kas melalui satu distribusi besar. Fungsi SUMIFS memasukkannya ke dalam total trailing, lalu sel yield melonjak. Dua belas bulan kemudian, angka tersebut diam-diam kembali turun.
Pembayaran seperti ini bukan hal yang jarang. Panel ini menghitung setiap pembayaran di seluruh pasar AS yang ditandai oleh kalender dividen sebagai pembayaran satu kali, bukan bagian dari jadwal berulang, berdasarkan bulan.
SQL tepat di balik setiap angka
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 monthPada Jul 2026, yaitu bulan lengkap terbaru, 111 pembayaran memiliki penanda satu kali. Jumlah tersebut setara dengan 2.91% dari seluruh pembayaran yang memasuki tanggal ex-dividend pada bulan itu. Total bergulir dua belas bulan pada akhirnya akan mencakup salah satunya.
Solusinya adalah kolom penanda. Masukkan regular atau special di kolom C di samping setiap pembayaran, lalu tambahkan penanda tersebut sebagai kriteria:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY(),$C$2:$C,"regular")
Pertahankan baris pembayaran khusus di sheet. Pembayaran tersebut merupakan kas yang benar-benar diterima dan harus dicatat dalam riwayat penerimaan. Namun, pembayaran tersebut tidak boleh dimasukkan ke dalam angka yang dimaksudkan untuk menggambarkan tingkat pembayaran yang berkelanjutan.
Hasil yang dicetak sel akhir
Trailing yield yang dihitung dengan cara ini memiliki dua komponen yang bergerak pada waktu berbeda. Total dividen berubah beberapa kali dalam setahun, ketika pembayaran masuk atau keluar dari periode pengamatan, atau ketika kenaikan dividen mulai berlaku. Harga berubah setiap sesi perdagangan. Panel di bawah menjalankan perhitungan akhir dari bulan ke bulan selama dua tahun terakhir untuk payer yang sama.
SQL tepat di balik setiap angka
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 monthGaris dividen naik secara bertahap, lalu tetap datar. Garis yield berubah setiap bulan selama periode yang sama. Pada Aug 2024, total trailing tercatat sebesar $1.89 per saham dengan yield sebesar 2.61%; pada Jul 2026, total tersebut tercatat sebesar $2.08 dan yield berada di 2.37%. Sel yield yang berubah ketika tidak ada yang mengubah kolom dividen menunjukkan cara kerja trailing yield: penyebutnya berubah.
Setelah satu ticker berfungsi, salin blok tersebut ke bawah untuk setiap holding dan beri bobot pada hasil berdasarkan market value, bukan dengan merata-ratakan yield. Langkah ini disebut yield dividen berbobot portofolio.
FAQ
Apakah GOOGLEFINANCE memiliki atribut dividend yield?
Tidak. Fungsi ini mencakup data live quote dan harga historis, tetapi tidak menyediakan data dividen atau yield. =GOOGLEFINANCE("KO","yield") menghasilkan #N/A. Yield dalam spreadsheet dihitung dari angka dividen yang Anda masukkan dan harga yang dikembalikan fungsi tersebut.
Bagaimana cara menghitung trailing dividend yield di Google Sheets?
Simpan tanggal ex-dividend dalam satu kolom dan jumlah kas per saham di kolom berikutnya. Jumlahkan pembayaran selama dua belas bulan terakhir dengan =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()), bagi total tersebut dengan =GOOGLEFINANCE("KO","price"), lalu format sel hasil sebagai persentase.
Mengapa dividend yield saya berbeda dari yang tercantum di halaman broker?
Paling sering penyebabnya adalah pembilang. Halaman yang mencantumkan forward yield menghitung tingkat dividen yang saat ini telah diumumkan secara tahunan, sedangkan SUMIFS untuk periode dua belas bulan menghasilkan angka trailing yang masih mencakup pembayaran berdasarkan tingkat lama. Jika terdapat dividen khusus dalam periode tersebut, selisihnya akan semakin besar.
Bagaimana cara mengecualikan dividen khusus dari yield?
Tambahkan kolom yang menandai setiap pembayaran sebagai regular atau special. Lalu, masukkan kolom tersebut sebagai pasangan kriteria tambahan dalam SUMIFS. Pembayaran khusus tetap tersimpan dalam spreadsheet, tetapi tidak diperhitungkan dalam yield.
Apakah Google Sheets dapat mengambil riwayat dividen secara otomatis?
Tidak melalui GOOGLEFINANCE. Kolom dividen harus diperbarui secara manual atau ditempel dari sumber yang menerbitkan catatan pembayaran. Itulah satu-satunya langkah manual dalam kedua metode di halaman ini.
Setiap panel di sini dilengkapi SQL yang digunakan untuk menghasilkan datanya. Buka salah satunya untuk melihat secara persis bagaimana suatu total dihitung. Pertanyaan yang sama dapat diajukan dalam bahasa Inggris di terminal Strasmore.