Strasmore Research
تعلیمی مواد Matt Connorاز Matt Connor · data as of August 21, 2026 · refreshed weekly

Google Sheets میں Dividend Yield کے دو فارمولے

GOOGLEFINANCE میں dividend yield attribute نہیں، مگر دو طریقے کام کرتے ہیں: ادا شدہ dividends سے trailing yield یا declared forward rate کو price سے divide کریں۔

Google Sheets میں dividend yield calculate کرنے کے لیے یہ number خود بنانا پڑتا ہے۔ GOOGLEFINANCE price، EPS، P/E، market cap اور quote fields کی ایک طویل فہرست return کرتا ہے، لیکن dividend yield ان میں شامل نہیں: =GOOGLEFINANCE("AAPL","yield") سے #N/A return ہوتا ہے، اور اس لفظ کی کوئی دوسری spelling بھی resolve نہیں ہوتی۔ دو متبادل طریقے قابلِ اعتماد ہیں۔ Sheet میں maintain کیے گئے dividend column سے trailing yield calculate کریں، یا declared forward rate کسی cell میں درج کرکے اسے divide کریں۔

GOOGLEFINANCE میں dividend yield attribute کیوں موجود نہیں

اس function کے attributes دو خاندانوں میں تقسیم ہوتے ہیں۔ پہلے live quote fields ہیں، جو دو arguments کے ذریعے حاصل کیے جاتے ہیں: price، volume، pe، eps، marketcap، high52، changepct اور تقریباً ایک درجن مزید۔ پھر historical price fields ہیں، جو کسی date یا date range کے ساتھ حاصل کیے جاتے ہیں: open، high، low، close، volume۔ Dividend records دونوں میں سے کسی family کا حصہ نہیں ہیں۔ کوئی attribute payment یا payout history واپس نہیں کرتا۔ اس لیے yield کا numerator function کے باہر سے حاصل کرنا پڑتا ہے۔

Dividend yield، فی share سالانہ dividends کو فی share price سے تقسیم کرنے کا نتیجہ ہے، جسے percent کے طور پر لکھا جاتا ہے۔ اس میں price والا حصہ ایک cell سے حاصل ہو جاتا ہے۔ Dividend والا حصہ اصل کام ہے۔ اگر یہ ratio آپ کے لیے نیا ہے تو dividend yield دراصل کیا ناپتا ہے spreadsheet mechanics سے پہلے اس کی وضاحت کرتا ہے، جبکہ dividend yield کا حساب کیسے لگائیں arithmetic کا طریقہ دکھاتا ہے۔

یہاں بنیادی data موجود ہے: تقریباً گزشتہ تین برس کے دوران ایک household payer کی جانب سے کی جانے والی ہر payment۔ ہر row میں ایک طرف ex-dividend date ہے، یعنی وہ تاریخ جس پر یا اس کے بعد stock خریدنے والے کو اگلی payment نہیں ملتی، اور دوسری طرف فی share ادا کی جانے والی cash رقم ہے۔

استفسار کریںCoca-Cola کی فی شیئر dividend ادائیگیاں، ex-dividend date کے لحاظ سے
ہر عدد کے پیچھے موجود درست 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_date
Run this yourself

Coca-Cola نے Sep 14, 2023 کو فی share $0.46 اور Jun 15, 2026 کو $0.53 ادا کیے، جبکہ اس مدت کے دوران کل 12 payments ہوئیں۔ Chart کی دوسری line ہر payment کو four سے ضرب دیتی ہے۔ یہ اس quarter کی payment کو پورے سال دہرائے جانے کی صورت میں implied annual rate ہے۔ یہ rate سال میں ایک بار بڑھتا ہے اور درمیان کے عرصے میں flat رہتا ہے۔ زیادہ تر spreadsheet yields میں غلطی اسی stepping کی وجہ سے ہوتی ہے۔ مکمل record Coca-Cola کی dividend history میں موجود ہے۔

Google Sheets میں dividend yield حاصل کرنے کے دو طریقے

پہلا طریقہ اپنی column سے trailing yield بنانا ہے۔ column A میں ex-dividend dates اور column B میں فی share cash amount درج کریں، ہر payment کے لیے ایک row رکھیں، پھر:

  • گزشتہ بارہ ماہ کا کل: =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())
  • موجودہ price: =GOOGLEFINANCE("KO","price")
  • گزشتہ بارہ ماہ کی yield، cell کو percentage کے طور پر format کرنے کے ساتھ: =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())/GOOGLEFINANCE("KO","price")
  • اسی مدت میں payments کی تعداد، بطور جانچ: =COUNTIFS($A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY())

EDATE(TODAY(),-12) بارہ ماہ پہلے کا یہی calendar day ہے، اس لیے window خود بخود آگے بڑھتی رہتی ہے۔ yield cell کو percentage کے طور پر format کریں؛ formula کے اندر اسے 100 سے ضرب نہ دیں۔ ایسی sheet جو دونوں کام کرے، جہاں 2.9% مراد ہو وہاں 290% دکھا دے گی۔

دوسرا طریقہ declared rate سے forward yield نکالنا ہے۔ حالیہ ترین declared per-share rate کو D2 میں اور سالانہ payments کی تعداد کو E2 میں درج کریں:

  • Forward yield: =D2*E2/GOOGLEFINANCE("KO","price")

D2 خودکار طور پر populate نہیں ہوتا۔ Board rate کا اعلان کرتا ہے، اور آپ declaration سے اسے پڑھ کر خود درج کرتے ہیں۔ Forward yield کا یہی درست طریقہ ہے، اور دونوں numerators کے درمیان انتخاب ہی trailing اور forward dividend yield کا بنیادی موضوع ہے۔

Function کے بارے میں دو مختصر نکات بھی اہم ہیں۔ Quotes میں 20 منٹ تک تاخیر ہو سکتی ہے، اور کسی بھی cell کی تاخیر =GOOGLEFINANCE("KO","datadelay") سے معلوم کی جا سکتی ہے۔ تاریخی fetch کسی number کے بجائے two-by-two array واپس کرتا ہے، اس لیے اسے wrap کریں: =INDEX(GOOGLEFINANCE("KO","close",DATE(2026,6,30)),2,2) صرف closing price فراہم کرتا ہے۔

Annualization کا مرحلہ، اور اس میں چھپی ہوئی غلطی

Dividend sheet میں سب سے عام غلط formula تازہ ترین payment کو چار سے ضرب دیتا ہے۔ کمپنی کی جانب سے rate بڑھانے تک یہ درست رہتا ہے۔ اضافہ ہونے کے بعد trailing year میں شامل چار payments میں سے تین پرانا rate استعمال کرتے ہوئے کی گئی تھیں، اس لیے نئی payment کو چار سے ضرب دینے سے shareholder کو حقیقت میں موصول ہونے والی رقم زیادہ ظاہر ہوتی ہے۔

نیچے دیا گیا panel آٹھ بڑے payers کے لیے اس فرق کا حجم دکھاتا ہے: ہر نام نے trailing twelve months کے دوران فی share کتنی رقم ادا کی، اس کے مقابلے میں تازہ ترین payment کو چار سے ضرب دینے پر حاصل ہونے والی رقم۔

استفسار کریںگزشتہ ایک سال میں حقیقتاً ادا کیے گئے dividends بمقابلہ تازہ ترین payment کا چار گنا
ہر عدد کے پیچھے موجود درست 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 DESC
Run this yourself

فرق کے لحاظ سے ترتیب دینے پر JNJ سرفہرست ہے۔ اس نے مذکورہ مدت کے دوران 4 payments کیں، جن کا مجموعہ فی share $5.24 تھا، جبکہ اس کی تازہ ترین payment کو چار سے ضرب دینے پر رقم $5.36 بنتی ہے، جو 2.29% زیادہ ہے۔ تقریباً 3% yield والے stock میں اس حجم کی غلطی شائع شدہ figure کو ایک percentage point کے دسویں حصے یا اس سے زیادہ سے بدل دیتی ہے، جو sorted list کی ترتیب تبدیل کرنے کے لیے کافی ہے۔

Payment count column، multiplication کے مقابلے میں SUMIFS کے استعمال کی دوسری وجہ ہے۔ Rolling twelve-month window میں ہمیشہ quarterly payments کی تعداد ٹھیک چار نہیں ہوتی۔ ہر سال ex-dividend dates چند دن آگے پیچھے ہو جاتی ہیں، اس لیے کسی window میں تین یا پانچ payments شامل ہو سکتی ہیں۔ کل رقم پر بھروسا کرنے سے پہلے COUNTIFS آپ کو بتاتا ہے کہ ان میں سے کون سی payment پہلے ہوئی تھی۔

Special dividends معمول کے run rate کا حصہ نہیں ہوتے

ایک اور عام غلطی یک بار کی ادائیگی کو باقاعدہ شیڈول کا حصہ سمجھنا ہے۔ کوئی کمپنی اضافی نقدی ایک بڑی واحد distribution کے ذریعے ادا کرتی ہے، SUMIFS اسے trailing total میں شامل کر دیتا ہے، اور yield cell اچانک بڑھ جاتا ہے۔ بارہ ماہ بعد یہ خاموشی سے دوبارہ معمول کی سطح پر آ جاتا ہے۔

ایسی ادائیگیاں نایاب نہیں ہیں۔ یہ panel پورے US market میں ہر اس ادائیگی کو شمار کرتا ہے جسے dividend calendar ماہ بہ ماہ دہرائے جانے والے شیڈول کے بجائے one-time ادائیگی قرار دیتا ہے۔

استفسار کریںماہانہ بنیاد پر one-time کے طور پر نشان زدہ ادائیگیاں بمقابلہ scheduled ادائیگیاں
ہر عدد کے پیچھے موجود درست 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 month
Run this yourself

Jul 2026 میں، جو حالیہ مکمل مہینہ ہے، 111 ادائیگیوں پر one-time نشان موجود تھا۔ یہ اس مہینے ex-dividend ہونے والی تمام ادائیگیوں کا 2.91% تھا۔ Rolling twelve month sum میں ان میں سے کسی ایک ادائیگی کا شامل ہو جانا جلد یا بدیر متوقع ہے۔

حل کے لیے ایک flag column استعمال کریں۔ ہر ادائیگی کے ساتھ column C میں regular یا special درج کریں، پھر اسے criterion کے طور پر شامل کریں:

  • =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY(),$C$2:$C,"regular")

Special rows کو sheet میں برقرار رکھیں۔ یہ حقیقی cash ہے اور جو رقم موصول ہوئی اس کے record میں شامل ہونی چاہیے۔ لیکن ongoing rate بیان کرنے والے number میں انہیں شامل نہیں ہونا چاہیے۔

مکمل cell کیا دکھاتا ہے

اس طریقے سے حاصل ہونے والی trailing yield کے دو متحرک اجزا ہیں، اور دونوں مختلف اوقات میں تبدیل ہوتے ہیں۔ Dividend total سال میں چند بار بدلتا ہے، جب کوئی payment متعلقہ مدت میں شامل ہوتی ہے یا اس سے نکل جاتی ہے، یا dividend میں اضافہ ہوتا ہے۔ Price ہر trading session میں بدلتی ہے۔ نیچے دیا گیا panel اسی payer کے لیے گزشتہ دو برس کے دوران ماہ بہ ماہ مکمل calculation چلاتا ہے۔

استفسار کریںCoca-Cola کے گزشتہ بارہ ماہ کے dividends اور trailing yield، ماہ بہ ماہ
ہر عدد کے پیچھے موجود درست 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 month
Run this yourself

Dividend line مرحلہ وار تبدیل ہوتی ہے، پھر کچھ عرصے تک flat رہتی ہے۔ اسی مدت میں yield line ہر ماہ حرکت کرتی ہے۔ Aug 2024 میں trailing total فی share $1.89 تھا، جبکہ yield 2.61% تھی؛ Jul 2026 تک total $2.08 ہو گیا اور yield 2.37% دکھا رہی تھی۔ اگر کسی نے dividend column کو تبدیل نہیں کیا، لیکن yield cell بدل رہی ہے، تو یہ trailing yield کا معمول کا عمل ہے: denominator تبدیل ہوا ہے۔

جب ایک ticker کے لیے calculation درست ہو جائے تو ہر holding کے لیے یہی block نیچے copy کریں، اور yields کا average لینے کے بجائے نتائج کو market value کے حساب سے weight دیں۔ اسی مرحلے کو portfolio weighted dividend yield کہا جاتا ہے۔

اکثر پوچھے جانے والے سوالات

کیا GOOGLEFINANCE میں dividend yield کا attribute موجود ہے؟

نہیں۔ یہ function live quote fields اور تاریخی prices فراہم کرتا ہے، لیکن ان میں dividend یا yield شامل نہیں۔ =GOOGLEFINANCE("KO","yield")، #N/A واپس کرتا ہے۔ Sheet میں yield اس dividend figure اور function سے حاصل ہونے والی price کی بنیاد پر خود تیار کی جاتی ہے۔

Google Sheets میں trailing dividend yield کیسے calculate کروں؟

ex-dividend dates ایک column میں اور فی share cash اگلے column میں درج رکھیں۔ =SUMIFS($B$2:$B,$A$2:$A,">="&EDATE(TODAY(),-12),$A$2:$A,"<="&TODAY()) کے ذریعے گزشتہ بارہ ماہ کی رقم جمع کریں، اس total کو =GOOGLEFINANCE("KO","price") پر تقسیم کریں، اور result cell کو percentage کے طور پر format کریں۔

میری dividend yield broker کے page پر دکھائی جانے والی yield سے مختلف کیوں ہے؟

زیادہ تر صورتوں میں فرق numerator کی وجہ سے ہوتا ہے۔ Forward yield دکھانے والا page موجودہ declared rate کو سالانہ بنیاد پر ظاہر کرتا ہے، جبکہ بارہ ماہ کا SUMIFS trailing figure واپس کرتا ہے جس میں پرانی rate پر کی گئی payments اب بھی شامل ہو سکتی ہیں۔ اس مدت کے اندر special dividend شامل ہو تو فرق مزید بڑھ جاتا ہے۔

میں special dividend کو yield سے کیسے خارج رکھوں؟

ہر payment کو regular یا special نشان زد کرنے کے لیے ایک column شامل کریں، پھر اس column کو SUMIFS میں اضافی criterion pair کے طور پر دیں۔ Special payment sheet میں موجود رہے گی، لیکن yield میں شامل نہیں ہوگی۔

کیا Google Sheets dividend history خودکار طور پر حاصل کر سکتا ہے؟

GOOGLEFINANCE کے ذریعے نہیں۔ Dividend column ہاتھ سے maintain کرنا ہوگا یا ایسے source سے paste کرنا ہوگا جو payment records شائع کرتا ہو۔ اس page پر موجود دونوں methods میں یہی واحد manual step ہے۔


یہاں موجود ہر panel اس کے تیار کیے گئے SQL کے ساتھ فراہم کیا گیا ہے۔ کسی total کی counting بالکل کیسے ہوئی، یہ دیکھنے کے لیے panel کھولیں۔ یہی سوالات Strasmore terminal پر plain English میں بھی پوچھے جا سکتے ہیں۔

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