Google Sheets temettü verimi hesaplama yöntemleri
GOOGLEFINANCE fonksiyonunda temettü verimi niteliği yer almamaktadır. Geçmiş ödemelere dayalı verim hesaplama ve ileriye dönük oran belirleme yöntemleri ile bu eksiklik giderilebilir.
Google Sheets'te temettü verimini hesaplamak için veriyi manuel olarak oluşturmak gerekir. GOOGLEFINANCE; fiyat, EPS, P/E, piyasa değeri ve diğer birçok fiyat teklifi alanını döndürür ancak temettü verimi bunlar arasında yer almaz: =GOOGLEFINANCE("AAPL","yield"), #N/A sonucunu verir ve kelimenin başka hiçbir yazım şekli de sonuç üretmez. İki geçici çözüm geçerliliğini korumaktadır. Tabloda tuttuğunuz bir temettü sütunundan geçmişe dönük bir verim hesaplayın veya açıklanan ileriye dönük oranı bir hücreye yazıp bölme işlemi yapın.
GOOGLEFINANCE fonksiyonunda neden temettü verimi niteliği bulunmuyor
Fonksiyonun nitelikleri iki aileye ayrılır. İki argümanla getirilen canlı fiyat verisi alanları mevcuttur: price, volume, pe, eps, marketcap, high52, changepct ve yaklaşık on iki tane daha. Bir de tarih veya tarih aralığı ile getirilen geçmiş fiyat verisi alanları vardır: open, high, low, close, volume. Temettü kayıtları bu ailelerin hiçbirine ait değildir. Hiçbir nitelik bir ödeme veya ödeme geçmişi döndürmez; bu durum, verim formülünün pay kısmının fonksiyon dışından getirilmesini zorunlu kılar.
Temettü verimi, hisse başına yıllık temettü tutarının hisse başına fiyata bölünmesiyle elde edilir ve yüzde olarak ifade edilir. Bu oranın fiyat kısmı tek bir hücreden ibarettir. Temettü kısmı ise emek gerektirir. Eğer oran kavramı sizin için yeniyse, temettü veriminin gerçekte neyi ölçtüğü konusu, elektronik tablo mekaniklerine geçmeden önce bu kavramı açıklar; temettü veriminin nasıl hesaplanacağı ise aritmetik süreci adım adım gösterir.
İşte ham veriler: tek bir temettü ödeyen kurumun yaklaşık son üç yıl içinde yaptığı her ödeme. Her satır bir ex-dividend date'i, yani hisseyi satın alan kişinin yaklaşan ödemeyi alamayacağı tarihi ve hemen yanında hisse başına ödenen nakit tutarı temsil eder.
Her verinin arkasındaki tam SQL
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, 12 ödeme dönemi boyunca Sep 14, 2023 tarihinde hisse başına $0.46 ve Jun 15, 2026 tarihinde $0.53 ödeme yapmıştır. Grafikteki ikinci çizgi, her ödemenin dört ile çarpılmış halidir: yani o çeyreğin ödemesinin tüm yıl boyunca tekrarlandığı varsayıldığında ortaya çıkan yıllık oran. Bu oran yılda bir kez yükselir ve aradaki dönemlerde sabit kalır. İşte bu basamaklı yapı, çoğu elektronik tablo verim hesaplamasının hatalı sonuç vermesine neden olur. Kaydın tamamı Coca-Cola temettü geçmişi kısmında yer almaktadır.
Google Sheets'te temettü verimi elde etmenin iki yolu
Birinci yöntem, kendi sütununuzdan oluşturulan geçmişe dönük (trailing) verimdir. Ex-dividend tarihlerini A sütununa ve hisse başına nakit tutarını B sütununa, her ödeme için bir satır olacak şekilde girin, ardından:
- Son on iki aylık toplam:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()) - Anlık fiyat:
=GOOGLEFINANCE("KO","price") - Hücresi yüzde olarak biçimlendirilmiş geçmişe dönük verim:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())/GOOGLEFINANCE("KO","price") - Kontrol amaçlı olarak aynı penceredeki ödeme sayısı:
=COUNTIFS($A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())
EDATE(TODAY(),-12), on iki ay önceki aynı takvim günüdür, bu nedenle pencere kendiliğinden ileriye doğru kayar. Verim hücresini formül içinde yüz ile çarpmak yerine yüzde olarak biçimlendirin. Her ikisini de yapan bir tablo, yüzde iki nokta dokuz anlamına geldiği yerde yüzde iki yüz doksan yazdırır.
İkinci yöntem, ilan edilen orandan hesaplanan ileriye dönük (forward) verimdir. En son ilan edilen hisse başına oranı D2 hücresine ve yıllık ödeme sayısını E2 hücresine girin:
- İleriye dönük verim:
=D2*E2/GOOGLEFINANCE("KO","price")
D2 hücresini otomatikleştiren bir yöntem yoktur. Yönetim kurulu bir oran açıklar, siz de bu açıklamayı okuyup sisteme girersiniz. Bu, ileriye dönük verimin dürüst versiyonudur ve iki pay arasındaki seçim, geçmişe dönük ve ileriye dönük temettü verimi konusunun tamamını oluşturur.
Fonksiyonla ilgili iki küçük not. Fiyat verileri yirmi dakikaya kadar gecikmelidir ve herhangi bir hücredeki gecikme =GOOGLEFINANCE("KO","datadelay") ile okunabilir. Ayrıca, geçmiş veri çekme işlemi bir sayı yerine ikiye ikilik bir dizi döndürür, bu yüzden formülü şu şekilde sarmalayın: =INDEX(GOOGLEFINANCE("KO","close",DATE(2026,6,30)),2,2) sadece kapanış fiyatını verir.
Yıllıklandırma adımı ve gizlediği hata
Temettü tablolarında en sık karşılaşılan hatalı formül, son ödemeyi dört ile çarpmaktır. Bu yöntem, şirket temettü artırana kadar doğru sonuç verir. Bir artışın ardından, geriye dönük bir yıl içindeki dört ödemenin üçü eski orandan yapılmış olur; dolayısıyla yeni tutarın dört katı, hissedarın fiilen elde ettiği geliri olduğundan yüksek gösterir.
Aşağıdaki panel, sekiz büyük temettü ödeyicisi için bu farkı boyutlandırmaktadır: her bir ismin son on iki ayda hisse başına ne kadar ödediği, en son ödemesinin dört katının yanında gösterilmiştir.
Her verinin arkasındaki tam SQL
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 DESCFark büyüklüğüne göre sıralandığında, JNJ listenin başında yer almaktadır. Şirket, ilgili dönemde toplam $5.24 tutarında 4 ödeme yapmıştır; oysa en son ödemesinin dört katı $5.36 seviyesine ulaşarak 2.29% oranında bir sapma yaratmaktadır. Yaklaşık yüzde üç getiri sağlayan bir hissede bu büyüklükteki bir hata, basılı veriyi yüzde onda bir veya daha fazla saptırır; bu da sıralanmış bir listeyi yeniden düzenlemek için yeterlidir.
Ödeme sayısı sütunu, çarpma işlemi yerine SUMIFS fonksiyonunun kullanılmasının ikinci gerekçesidir. Hareketli on iki aylık bir pencere, her zaman tam olarak dört çeyreklik ödemeyi kapsamaz. Ex-dividend date tarihleri her yıl birkaç gün kayar ve bir pencere üç veya beş ödemeyi içine alabilir. COUNTIFS, toplam tutara güvenmeden önce hangi durumun gerçekleştiğini belirtir.
Özel temettüler düzenli bir gelir akışı değildir
Diğer klasik hata, tek seferlik bir ödemeyi takvimin bir parçası olarak değerlendirmektir. Bir şirket, elindeki nakit fazlasını tek seferlik büyük bir dağıtımla tasfiye eder; SUMIFS formülü bunu geçmişe dönük toplamın içine çeker ve verim hücresi yükselir. On iki ay sonra ise bu oran sessizce eski seviyesine döner.
Bu ödemeler nadir değildir. Panel, ABD piyasasındaki her bir ödemeyi, temettü takviminde tekrarlayan bir programın parçası değil de tek seferlik olarak işaretlenmiş olup olmadığına göre ay bazında sayar.
Her verinin arkasındaki tam SQL
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 monthEn son tamamlanan ay olan Jul 2026 döneminde, 111 adet ödeme tek seferlik olarak işaretlenmiş olup, bu sayı o ay ex-dividend olan tüm ödemelerin 2.91%'sini oluşturmuştur. On iki aylık hareketli toplam, er ya da geç bunlardan biriyle karşılaşacaktır.
Bunun çözümü bir bayrak sütunudur. Her ödemenin yanındaki C sütununa regular veya special ibaresini koyun, ardından bunu bir kriter olarak ekleyin:
=SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY(),$C$2:$C,"regular")
Özel ödeme satırlarını çalışma sayfasında tutun. Bunlar gerçek nakittir ve neyin alındığına dair kayıtlarda yer almaları gerekir. Ancak devam eden bir oranı tanımlaması amaçlanan bir rakamın içinde yer almamalıdırlar.
Tamamlanmış hücrenin çıktıları
Bu şekilde oluşturulan geçmişe dönük verim (trailing yield), iki hareketli parçadan oluşur ve bunlar farklı zaman dilimlerinde hareket eder. Temettü toplamı, bir ödeme pencereye girip çıktığında veya bir artış gerçekleştiğinde yılda birkaç kez değişir. Fiyat ise her seansta değişir. Aşağıdaki panel, aynı ödeyici için son iki yıl boyunca aylık bazda tamamlanmış hesaplamayı yürütür.
Her verinin arkasındaki tam SQL
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 monthTemettü çizgisi basamaklar halinde ilerler, ardından yatay seyreder. Verim çizgisi ise aynı dönem boyunca her ay hareket eder. Aug 2024 döneminde geçmişe dönük toplam hisse başına $1.89 seviyesindeyken verim 2.61% olarak gerçekleşmiştir; Jul 2026 dönemine gelindiğinde ise toplam $2.08 seviyesine ulaşmış ve verim 2.37% olarak okunmuştur. Kimse temettü sütununa dokunmadığı halde değişen bir verim hücresi, geçmişe dönük verimin doğası gereği yaptığı işi yapmaktadır: payda değişmiştir.
Bir ticker üzerinde işlem başarılı olduğunda, bloğu her bir varlık için aşağı kopyalayın ve verimleri ortalamak yerine sonuçları piyasa değerine göre ağırlıklandırın. Bu adım portföy ağırlıklı temettü verimi olarak adlandırılır.
Sıkça Sorulan Sorular
GOOGLEFINANCE fonksiyonunda temettü verimi (dividend yield) özniteliği var mı?
Hayır. Fonksiyon sadece canlı fiyat verilerini ve geçmiş fiyatları kapsar; bunların hiçbiri temettü veya verim değildir. =GOOGLEFINANCE("KO","yield"), #N/A sonucunu döndürür. Bir tabloda verim, sizin sağladığınız bir temettü rakamı ile fonksiyonun döndürdüğü fiyat üzerinden hesaplanır.
Google Sheets üzerinde geçmişe dönük (trailing) temettü verimini nasıl hesaplarım?
Ex-dividend date tarihlerini bir sütunda, hisse başına nakit ödemeleri ise diğer sütunda tutun. Son on iki aylık veriyi =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()) ile toplayın, bu toplamı =GOOGLEFINANCE("KO","price") değerine bölün ve sonuç hücresini yüzde formatına getirin.
Temettü verimim neden aracı kurumumun sayfasındakiyle farklı?
Genellikle pay kısmından kaynaklanır. İleriye dönük (forward) verim sunan bir sayfa, mevcut ilan edilen oranı yıllıklandırırken; on iki aylık bir SUMIFS, eski orandan yapılan ödemeleri de içeren geçmişe dönük bir rakam döndürür. Dönem içindeki bir özel temettü (special dividend), aradaki farkı daha da açar.
Özel temettüleri verim hesabının dışında nasıl tutarım?
Her ödemeyi "düzenli" veya "özel" olarak işaretleyen bir sütun ekleyin, ardından bu sütunu SUMIFS fonksiyonunda ek bir kriter çifti olarak kullanın. Özel ödeme tabloda kalmaya devam eder ancak verim hesabına dahil edilmez.
Google Sheets temettü geçmişini otomatik olarak çekebilir mi?
GOOGLEFINANCE üzerinden çekemez. Temettü sütunu elle tutulmalı veya ödeme kayıtlarını yayınlayan bir kaynaktan yapıştırılmalıdır. Bu sayfadaki her iki yöntemde de manuel olarak yapılması gereken tek işlem budur.
Buradaki her panel, kendisini oluşturan SQL koduyla birlikte sunulmaktadır; bir toplamın tam olarak nasıl hesaplandığını görmek için panellerden birini açabilirsiniz. Aynı sorular, Strasmore terminali üzerinden yalın bir dille de sorulabilir.