Fundamental analysis of stocks estimates what a company is worth from its financial statements, valuation ratios, profitability, growth, and balance sheet health, then compares that to the share price. Unlike technical analysis, which studies price and volume patterns, it asks whether the stock trades above or below its intrinsic value. In Excel, MarketXLS formulas pull each input: =PERatio("AAPL") for valuation, =ReturnOnEquity("AAPL") for profitability, and =hf_revenue("AAPL", "ly") for historical financials. This guide covers the three financial statements, the key ratios, and a step-by-step dashboard you can build.
Try it in your own spreadsheet
Get the free MarketXLS sample workbook (.xlsx).
No account needed. MarketXLS live data requires a paid plan. Preview workbook
Explore more videos
What Is Fundamental Analysis?
Fundamental analysis is the process of evaluating a security's intrinsic value by examining related economic, financial, and qualitative factors. The goal is to determine whether a stock's current market price accurately reflects the company's underlying value.
Two Approaches to Fundamental Analysis
| Approach | Direction | Focus |
|---|---|---|
| Top-Down | Economy → Sector → Company | Start with macroeconomic conditions, identify promising sectors, then select best companies within those sectors |
| Bottom-Up | Company → Sector → Economy | Start with individual company analysis regardless of macro conditions, focus on company-specific strengths |
Both approaches ultimately converge on the same goal: identifying stocks whose market price diverges from intrinsic value.
The Three Financial Statements
Every fundamental analysis begins with the three core financial statements filed with the SEC (for US companies):
1. Income Statement (Profit & Loss)
The income statement shows a company's revenues, expenses, and profits over a specific period.
Key line items you can pull with MarketXLS:
=Revenue("AAPL")
=hf_revenue("AAPL", "2024", "2")
=hf_revenue("AAPL", "ly")
=hf_operatingIncome("AAPL", "ly")
=hf_netIncome("AAPL", "ly")
=hf_eps("AAPL", "lq")
=hf_ebitda("AAPL", "ly")
Formula documentation: Revenue, hf_revenue, hf_eps, hf_ebitda
| Function | What It Returns |
|---|---|
=Revenue("AAPL") | Current/latest revenue |
=hf_revenue("AAPL", "2024", "2") | Revenue for Q2 2024 |
=hf_revenue("AAPL", "ly") | Revenue for last reported fiscal year |
=hf_revenue("AAPL", "lq") | Revenue for last reported quarter |
=hf_revenue("AAPL", "lt") | Trailing 12 months revenue |
=hf_operatingIncome("AAPL", "ly") | Operating income, last year |
=hf_netIncome("AAPL", "ly") | Net income, last year |
=hf_eps("AAPL", "lq") | Earnings per share, last quarter |
=hf_ebitda("AAPL", "ly") | EBITDA, last year |
2. Balance Sheet
The balance sheet provides a snapshot of a company's assets, liabilities, and shareholders' equity at a specific point in time.
Key MarketXLS functions:
=hf_totalAssets("MSFT", "ly")
=hf_totalLiabilities("MSFT", "ly")
=hf_totalDebt("MSFT", "ly")
=hf_currentAssets("MSFT", "lq")
=hf_currentLiabilities("MSFT", "lq")
| Function | What It Returns |
|---|---|
=hf_totalAssets("MSFT", "ly") | Total assets, last year |
=hf_totalLiabilities("MSFT", "ly") | Total liabilities, last year |
=hf_totalDebt("MSFT", "ly") | Total debt, last year |
=hf_currentAssets("MSFT", "lq") | Current assets, last quarter |
=hf_currentLiabilities("MSFT", "lq") | Current liabilities, last quarter |
3. Cash Flow Statement
The cash flow statement tracks the actual cash entering and leaving the business.
=hf_freeCashFlow("GOOGL", "ly")
=hf_freeCashFlow("GOOGL", "lt")
Essential Valuation Ratios
Valuation ratios help you determine whether a stock is overvalued, undervalued, or fairly valued relative to its earnings, assets, sales, and cash flow.
Price-to-Earnings Ratio (P/E)
The most widely used valuation metric:
P/E = Stock Price / Earnings Per Share
=PERatio("AAPL")
=Last("AAPL")
=EarningsPerShare("AAPL")
Formula documentation: PERatio, Last, EarningsPerShare
| P/E Range | General Interpretation |
|---|---|
| < 10 | Potentially undervalued or declining business |
| 10 – 20 | Fairly valued for mature companies |
| 20 – 30 | Growth premium — market expects strong future earnings |
| > 30 | High growth expectations or speculative premium |
Important: P/E ratios must be compared within the same industry. A P/E of 30 might be low for a high-growth tech company but high for a utility.
Price-to-Book Ratio (P/B)
P/B = Stock Price / Book Value Per Share
=PriceToBook("AAPL")
=BookValuePerShare("AAPL")
Formula documentation: PriceToBook, BookValuePerShare
Useful for asset-heavy businesses (banks, real estate, manufacturing). Less meaningful for asset-light companies (software, services).
Price-to-Sales Ratio (P/S)
P/S = Market Cap / Revenue
=PriceToSales("MSFT")
=MarketCapitalization("MSFT")
=Revenue("MSFT")
Formula documentation: PriceToSales, MarketCapitalization, Revenue
Useful for companies that are not yet profitable, where P/E cannot be calculated.
Enterprise Value / EBITDA (EV/EBITDA)
=EnterpriseValue("AAPL")
=EBITDA("AAPL")
Formula documentation: EnterpriseValue, EBITDA
EV/EBITDA is preferred by many analysts because it accounts for debt levels and is not affected by depreciation policies.
Dividend Yield
=DividendYield("JNJ")
=DividendPerShare("JNJ")
Formula documentation: DividendYield, DividendPerShare
| Yield Range | Interpretation |
|---|---|
| 0% | No dividend paid |
| 1 – 2% | Low yield (growth companies) |
| 2 – 4% | Moderate yield |
| 4 – 6% | High yield (income stocks) |
| > 6% | Very high — check sustainability |
Profitability Metrics
Profitability metrics reveal how efficiently a company converts revenue into profit.
Margins
=GrossMargin("AAPL")
=OperatingMargin("AAPL")
=ProfitMargin("AAPL")
Formula documentation: GrossMargin, OperatingMargin, ProfitMargin
| Metric | Formula | What It Shows |
|---|---|---|
| Gross Margin | (Revenue - COGS) / Revenue | Pricing power and production efficiency |
| Operating Margin | Operating Income / Revenue | Core business profitability |
| Net Profit Margin | Net Income / Revenue | Bottom-line profitability after all expenses |
Return Metrics
=ReturnOnEquity("AAPL")
=ReturnOnAssets("AAPL")
Formula documentation: ReturnOnEquity, ReturnOnAssets
| Metric | Formula | Target |
|---|---|---|
| Return on Equity (ROE) | Net Income / Shareholders' Equity | > 15% is generally strong |
| Return on Assets (ROA) | Net Income / Total Assets | Varies by industry; higher is better |
Growth Metrics
Growth drives future earnings and valuation expansion.
=RevenueGrowth("NVDA")
=hf_revenue("NVDA", "ly")
=hf_revenue("NVDA", "2023")
Formula documentation: RevenueGrowth, hf_revenue
To calculate year-over-year growth manually:
// Revenue growth = (Current Year Revenue - Prior Year Revenue) / Prior Year Revenue
=(hf_revenue("NVDA", "2024") - hf_revenue("NVDA", "2023")) / hf_revenue("NVDA", "2023")
Formula documentation: hf_revenue
Key Growth Metrics
| Metric | MarketXLS Function | Importance |
|---|---|---|
| Revenue Growth | =RevenueGrowth("TICKER") | Top-line expansion |
| Earnings Growth | Manual calculation from =hf_eps() | Bottom-line expansion |
| Free Cash Flow Growth | Manual from =hf_freeCashFlow() | Cash generation trend |
Financial Health Indicators
Liquidity Ratios
=hf_currentRatio("AAPL", "lq")
=QuickRatio("AAPL")
| Ratio | Formula | Healthy Range |
|---|---|---|
| Current Ratio | Current Assets / Current Liabilities | 1.5 – 3.0 |
| Quick Ratio | (Current Assets - Inventory) / Current Liabilities | > 1.0 |
Leverage Ratios
=hf_debtToEquity("AAPL", "ly")
=hf_totalDebt("AAPL", "ly")
Formula documentation: hf_debtToEquity
| Ratio | Interpretation |
|---|---|
| Debt-to-Equity < 0.5 | Conservative financing |
| Debt-to-Equity 0.5 – 1.0 | Moderate leverage |
| Debt-to-Equity > 1.0 | Aggressive leverage — evaluate carefully |
Payout Ratio
=PayoutRatio("JNJ")
Formula documentation: PayoutRatio
A payout ratio above 80% may indicate the dividend is unsustainable unless the company has very stable cash flows.
Building a Complete Fundamental Analysis Dashboard in Excel
Here is how to set up a comprehensive stock analysis template using MarketXLS:
Company Overview Section
| Row | Metric | Formula |
|---|---|---|
| 1 | Company Symbol | AAPL (manual entry in cell A1) |
| 2 | Current Price | =Last(A1) |
| 3 | Market Cap | =MarketCapitalization(A1) |
| 4 | Sector | =Sector(A1) |
| 5 | Industry | =Industry(A1) |
| 6 | 52-Week High | =FiftyTwoWeekHigh(A1) |
| 7 | 52-Week Low | =FiftyTwoWeekLow(A1) |
| 8 | Beta | =Beta(A1) |
Valuation Section
| Row | Metric | Formula |
|---|---|---|
| 9 | P/E Ratio | =PERatio(A1) |
| 10 | Price/Book | =PriceToBook(A1) |
| 11 | Price/Sales | =PriceToSales(A1) |
| 12 | EV/EBITDA | =EnterpriseValue(A1) / EBITDA(A1) |
| 13 | Dividend Yield | =DividendYield(A1) |
| 14 | Payout Ratio | =PayoutRatio(A1) |
Profitability Section
| Row | Metric | Formula |
|---|---|---|
| 15 | Gross Margin | =GrossMargin(A1) |
| 16 | Operating Margin | =OperatingMargin(A1) |
| 17 | Net Profit Margin | =ProfitMargin(A1) |
| 18 | ROE | =ReturnOnEquity(A1) |
| 19 | ROA | =ReturnOnAssets(A1) |
Growth Section
| Row | Metric | Formula |
|---|---|---|
| 20 | Revenue Growth | =RevenueGrowth(A1) |
| 21 | Revenue (Last Year) | =hf_revenue(A1, "ly") |
| 22 | Revenue (Year Before) | =hf_revenue(A1, "2023") |
| 23 | EPS (Last Quarter) | =hf_eps(A1, "lq") |
| 24 | Free Cash Flow | =hf_freeCashFlow(A1, "ly") |
Financial Health Section
| Row | Metric | Formula |
|---|---|---|
| 25 | Current Ratio | =hf_currentRatio(A1, "lq") |
| 26 | Quick Ratio | =QuickRatio(A1) |
| 27 | Debt-to-Equity | =hf_debtToEquity(A1, "ly") |
| 28 | Total Debt | =hf_totalDebt(A1, "ly") |
| 29 | Total Assets | =hf_totalAssets(A1, "ly") |
Historical Comparison Section
The MarketXLS hf_ (historical fundamentals) function family accepts relative time references:
=hf_revenue("AAPL", "ly") // Last reported year
=hf_revenue("AAPL", "lq") // Last reported quarter
=hf_revenue("AAPL", "lt") // Last 12 months (trailing)
=hf_revenue("AAPL", "2024", "2") // Q2 2024 specifically
Formula documentation: hf_revenue
Build a multi-year comparison:
| Year | Revenue | Net Income | EPS | Free Cash Flow |
|---|---|---|---|---|
| 2022 | =hf_revenue(A1, "2022") | =hf_netIncome(A1, "2022") | =hf_eps(A1, "2022") | =hf_freeCashFlow(A1, "2022") |
| 2023 | =hf_revenue(A1, "2023") | =hf_netIncome(A1, "2023") | =hf_eps(A1, "2023") | =hf_freeCashFlow(A1, "2023") |
| Last reported year | =hf_revenue(A1, "ly") | =hf_netIncome(A1, "ly") | =hf_eps(A1, "ly") | =hf_freeCashFlow(A1, "ly") |
The "ly", "lq", and "lt" parameters automatically update when the company files new financial statements, so your spreadsheet stays current without manual adjustments.
Comparison: Fundamental Analysis Methods
| Method | Focus | Best For | Key MarketXLS Functions |
|---|---|---|---|
| Value Investing | Low P/E, P/B; margin of safety | Patient investors seeking undervalued stocks | =PERatio(), =PriceToBook(), =DividendYield() |
| Growth Investing | Revenue/earnings growth rates | Investors seeking capital appreciation | =RevenueGrowth(), =hf_revenue(), =hf_eps() |
| Income Investing | Dividend yield and sustainability | Income-focused investors | =DividendYield(), =PayoutRatio(), =DividendPerShare() |
| Quality Investing | High ROE, margins, consistent earnings | Long-term holders | =ReturnOnEquity(), =GrossMargin(), =ProfitMargin() |
| GARP (Growth at Reasonable Price) | Growth + valuation balance | Balanced investors | =PERatio(), =RevenueGrowth(), =EarningsPerShare() |
Sector-Specific Fundamental Analysis
Different sectors require emphasis on different metrics:
| Sector | Key Metrics | Relevant MarketXLS Functions |
|---|---|---|
| Technology | Revenue growth, R&D spending, margins | =RevenueGrowth(), =GrossMargin(), =OperatingMargin() |
| Financials (Banks) | P/B, ROE, net interest margin | =PriceToBook(), =ReturnOnEquity() |
| Healthcare/Pharma | Pipeline, revenue growth, margins | =hf_revenue(), =ProfitMargin() |
| Consumer Staples | Dividend yield, margins, brand moat | =DividendYield(), =GrossMargin() |
| Energy | EV/EBITDA, debt levels, cash flow | =EnterpriseValue(), =EBITDA(), =hf_freeCashFlow() |
| Real Estate (REITs) | P/B, dividend yield, FFO | =PriceToBook(), =DividendYield() |
| Utilities | Dividend yield, payout ratio, debt | =DividendYield(), =PayoutRatio(), =hf_totalDebt() |
Common Mistakes in Fundamental Analysis
- Relying on a single metric: No single ratio tells the whole story. Always use multiple metrics across valuation, profitability, growth, and financial health.
- Ignoring industry context: A P/E of 25 is expensive for a utility but cheap for a high-growth tech company. Always compare within the same industry.
- Confusing earnings with cash flow: A company can report positive earnings while burning cash. Always check free cash flow alongside earnings.
- Ignoring the balance sheet: Revenue growth means nothing if funded by unsustainable debt. Check leverage ratios.
- Anchoring to historical averages: A stock trading below its 5-year average P/E may deserve a lower multiple if fundamentals have deteriorated.
- Neglecting qualitative factors: Management quality, competitive moat, regulatory environment, and industry trends all matter.
Step-by-Step Fundamental Analysis Process
Step 1: Understand the Business
Before looking at any numbers, understand what the company does, how it makes money, and what its competitive advantages are.
Step 2: Analyze the Income Statement
=hf_revenue("TICKER", "ly")
=hf_operatingIncome("TICKER", "ly")
=hf_netIncome("TICKER", "ly")
=GrossMargin("TICKER")
=OperatingMargin("TICKER")
=ProfitMargin("TICKER")
Formula documentation: hf_revenue, GrossMargin, OperatingMargin, ProfitMargin
Look for consistent revenue growth, expanding margins, and growing earnings.
Step 3: Examine the Balance Sheet
=hf_totalAssets("TICKER", "ly")
=hf_totalLiabilities("TICKER", "ly")
=hf_totalDebt("TICKER", "ly")
=hf_currentRatio("TICKER", "lq")
=hf_debtToEquity("TICKER", "ly")
Formula documentation: hf_debtToEquity
Ensure the company has adequate liquidity, manageable debt, and a solid asset base.
Step 4: Review Cash Flows
=hf_freeCashFlow("TICKER", "ly")
=hf_freeCashFlow("TICKER", "lt")
Free cash flow is often considered the most reliable indicator of financial health because it's harder to manipulate than earnings.
Step 5: Calculate Valuation Ratios
=PERatio("TICKER")
=PriceToBook("TICKER")
=PriceToSales("TICKER")
=DividendYield("TICKER")
=EnterpriseValue("TICKER") / EBITDA("TICKER")
Formula documentation: PERatio, PriceToBook, PriceToSales, DividendYield, EnterpriseValue, EBITDA
Compare these ratios to industry peers and historical averages.
Step 6: Assess Growth
=RevenueGrowth("TICKER")
=hf_eps("TICKER", "ly")
=hf_eps("TICKER", "2023")
Formula documentation: RevenueGrowth, hf_eps
Calculate multi-year growth trends to distinguish between one-time gains and sustainable growth.
Step 7: Compare to Peers
Build a comparison table with 3–5 competitors:
| Metric | Company A | Company B | Company C |
|---|---|---|---|
=PERatio() | |||
=PriceToBook() | |||
=ReturnOnEquity() | |||
=GrossMargin() | |||
=RevenueGrowth() | |||
=DividendYield() |
Simply change the ticker symbol in each cell to populate the comparison automatically.
Historical Fundamentals With Relative Time References
MarketXLS hf_ functions accept relative time references, so a sheet keeps pointing at the latest filing:
| Reference | Meaning | Example |
|---|---|---|
"ly" | Last reported year | =hf_revenue("AAPL", "ly") |
"lq" | Last reported quarter | =hf_revenue("AAPL", "lq") |
"lt" | Last 12 months (trailing) | =hf_revenue("AAPL", "lt") |
"2024" | Specific year | =hf_revenue("AAPL", "2024") |
"2024", "2" | Specific quarter | =hf_revenue("AAPL", "2024", "2") |
"2024", "2", "TTM" | TTM as of Q2 2024 | =hf_revenue("AAPL", "2024", "2", "TTM") |
Important: All quarterly values refer to calendar quarters (Q1 = January–March), not fiscal quarters. This standardization makes cross-company comparisons straightforward.
Spreadsheets using relative references ("ly", "lq", "lt") automatically update when new financial statements are filed, keeping your analysis current without manual intervention.
Fundamental Analysis Checklist
Before making any investment decision based on fundamental analysis, run through this checklist using MarketXLS:
Valuation Check
- P/E ratio compared to industry average:
=PERatio("TICKER") - Price-to-Book for asset-heavy businesses:
=PriceToBook("TICKER") - Price-to-Sales for pre-profit companies:
=PriceToSales("TICKER") - EV/EBITDA compared to peers:
=EnterpriseValue("TICKER")/=EBITDA("TICKER")
Profitability Check
- Gross margin trend stable or expanding:
=GrossMargin("TICKER") - Operating margin above industry average:
=OperatingMargin("TICKER") - ROE above 15%:
=ReturnOnEquity("TICKER") - Consistent earnings growth:
=hf_eps("TICKER", "ly")vs prior years
Financial Health Check
- Current ratio above 1.5:
=hf_currentRatio("TICKER", "lq") - Debt-to-equity manageable:
=hf_debtToEquity("TICKER", "ly") - Positive free cash flow:
=hf_freeCashFlow("TICKER", "ly") - Dividend sustainable (if applicable):
=PayoutRatio("TICKER")
Growth Check
- Revenue growing:
=RevenueGrowth("TICKER") - Earnings keeping pace with revenue:
=hf_eps("TICKER", "ly") - Free cash flow growing: compare
=hf_freeCashFlow()across years
This systematic approach ensures you never overlook a critical metric when evaluating stocks.
Fundamental Analysis for Different Investment Styles
For Dividend Investors
Focus on income stability and sustainability:
=DividendYield("KO")
=DividendPerShare("KO")
=PayoutRatio("KO")
=DividendFrequency("KO")
=hf_freeCashFlow("KO", "ly")
Formula documentation: DividendYield, DividendPerShare, PayoutRatio, DividendFrequency
A sustainable dividend stock typically has a payout ratio below 70%, consistent free cash flow generation, and a history of maintaining or increasing dividends. Use =DividendFrequency() to verify payment schedules.
For Growth Investors
Prioritize revenue acceleration and margin expansion:
=RevenueGrowth("NVDA")
=GrossMargin("NVDA")
=OperatingMargin("NVDA")
=hf_revenue("NVDA", "lt")
=hf_revenue("NVDA", "2023")
Formula documentation: RevenueGrowth, GrossMargin, OperatingMargin, hf_revenue
Compare trailing 12-month revenue against prior years to identify acceleration or deceleration patterns. Growing revenue combined with expanding margins is the hallmark of a high-quality growth company.
For Value Investors
Screen for undervaluation relative to fundamentals:
=PERatio("INTC")
=PriceToBook("INTC")
=PriceToSales("INTC")
=BookValuePerShare("INTC")
=hf_freeCashFlow("INTC", "ly")
Formula documentation: PERatio, PriceToBook, PriceToSales, BookValuePerShare
Value investors look for stocks trading below intrinsic value — low P/E, low P/B relative to peers, and positive free cash flow. The margin of safety concept requires buying at a significant discount to estimated fair value.
Frequently Asked Questions
What is fundamental analysis of stocks?
Fundamental analysis of stocks is the method of evaluating a company's intrinsic value by examining its financial statements, valuation ratios, profitability, growth trends, and financial health. The goal is to determine whether a stock is overvalued, undervalued, or fairly priced relative to its true worth.
What are the most important fundamental analysis metrics?
The most important metrics include P/E Ratio (=PERatio()), Return on Equity (=ReturnOnEquity()), revenue and earnings growth (=RevenueGrowth(), =hf_eps()), profit margins (=GrossMargin(), =ProfitMargin()), and debt levels (=hf_debtToEquity()). No single metric is sufficient — use a combination across valuation, profitability, growth, and health categories.
How do I perform fundamental analysis in Excel?
With MarketXLS, you can perform complete fundamental analysis in Excel using built-in formulas. Use =PERatio(), =MarketCapitalization(), =DividendYield(), and =Revenue() for current data, and =hf_revenue(), =hf_netIncome(), =hf_eps() for historical data. Build dashboards that update automatically when companies file new financial statements.
What is the difference between fundamental and technical analysis?
Fundamental analysis evaluates a company's intrinsic value using financial data (earnings, revenue, assets). Technical analysis studies price patterns, volume, and momentum indicators to predict future price movements. Many investors use both approaches — fundamental analysis for stock selection and technical analysis for timing.
How often should I update my fundamental analysis?
Review fundamental analysis quarterly when companies release earnings reports. The hf_ functions in MarketXLS with relative references ("ly", "lq", "lt") update automatically when new filings are available, reducing manual work significantly.
Can MarketXLS pull historical fundamental data?
Yes. MarketXLS provides the hf_ (historical fundamentals) family of functions that can pull quarterly, yearly, and trailing 12-month data from company financial statements. Functions like =hf_revenue(), =hf_netIncome(), =hf_eps(), and =hf_freeCashFlow() accept year, quarter, and relative time parameters.
Start Your Fundamental Analysis in Excel
Fundamental analysis is faster when the data lands directly in Excel. MarketXLS provides fundamental data functions for prices (15-minute delayed on the Standard plan, real-time on Advanced and Business), valuation ratios, and historical quarterly financials, all as Excel formulas. Build custom analysis templates, compare multiple companies side by side, and track your portfolio's fundamental health over time.
See MarketXLS pricing and plans to compare plans.

