มูลค่าตามราคาตลาด (Market cap) ใช้จำนวนหุ้นประเภทใด
การคำนวณ Market cap ใช้ราคาหุ้นคูณด้วยจำนวนหุ้นทั้งหมด โดยต้องแยกแยะระหว่าง Shares outstanding, weighted average สำหรับคำนวณ EPS และ free float เพื่อป้องกันข้อมูลคลาดเคลื่อน
มูลค่าตลาดและจำนวนหุ้นที่ใช้คำนวณ
Market cap คือราคาหุ้นคูณด้วยจำนวนหุ้นทั้งหมด คำถามเดียวที่สำคัญคือต้องใช้จำนวนหุ้นตัวไหน คำตอบมาตรฐานคือ shares outstanding ซึ่งหมายถึงหุ้นทุกหุ้นที่บริษัทออกและยังไม่ได้ซื้อคืน ตามที่ระบุไว้ในหน้าปกของรายงานประจำไตรมาสหรือรายงานประจำปีฉบับล่าสุด มีตัวเลขสองชุดที่มักถูกนำมาสับสนกับค่านี้ ได้แก่ weighted average share count ซึ่งใช้สำหรับคำนวณ EPS และ free float ซึ่งเป็นจำนวนหุ้นที่ผู้ให้บริการดัชนีใช้ในการถ่วงน้ำหนัก
มูลค่าตามราคาตลาด (Market cap) ใช้จำนวนหุ้นประเภทใด
จำนวนหุ้นที่ออกและเรียกชำระแล้ว (Shares outstanding) คือจำนวนหุ้น ณ จุดเวลาใดเวลาหนึ่ง ซึ่งหมายถึงจำนวนหุ้นทั้งหมดที่มีอยู่ในขณะนั้น โดยถือครองโดยผู้ถือหุ้นรายใหญ่ กองทุน ผู้ติดตามดัชนี และนักลงทุนทั่วไป บริษัทจะระบุตัวเลขนี้ไว้ที่หน้าปกของรายงานประจำไตรมาสและรายงานประจำปี โดยมีวันที่ระบุไว้หลังจากสิ้นสุดรอบระยะเวลาที่รายงานนั้นครอบคลุมไม่กี่สัปดาห์ มูลค่าตามราคาตลาดคือจำนวนหุ้นดังกล่าวคูณด้วยราคาล่าสุด หุ้นที่มีราคา 50 ดอลลาร์และมีจำนวนหุ้นที่ออกและเรียกชำระแล้ว 200 ล้านหุ้น จะถือเป็นบริษัทที่มีมูลค่า 1 หมื่นล้านดอลลาร์ หากราคาปรับขึ้นเป็น 55 ดอลลาร์ หุ้นจำนวน 200 ล้านหุ้นเดิมจะทำให้บริษัทมีมูลค่า 1.1 หมื่นล้านดอลลาร์
จำนวนหุ้นถัวเฉลี่ยถ่วงน้ำหนัก (Weighted average share count) เป็นการคำนวณที่แตกต่างออกไป โดยปรากฏอยู่ในงบกำไรขาดทุนและมีไว้เพื่อให้ค่ากำไรต่อหุ้น (EPS) มีความหมาย หุ้นที่ออกในช่วงกลางไตรมาสจะมีสถานะคงค้างอยู่เพียงครึ่งไตรมาสเท่านั้น ดังนั้นจำนวนหุ้นถัวเฉลี่ยขั้นพื้นฐานจึงถ่วงน้ำหนักหุ้นแต่ละหุ้นตามสัดส่วนระยะเวลาที่หุ้นนั้นมีอยู่จริง ส่วนจำนวนหุ้นแบบปรับลด (Diluted) จะรวมหุ้นที่จะเกิดขึ้นหากมีการใช้สิทธิจาก option, restricted stock units, ใบสำคัญแสดงสิทธิ (warrants) และหลักทรัพย์แปลงสภาพ ทั้งสองค่านี้เป็นค่าเฉลี่ยในช่วงเวลาที่ผ่านพ้นไปแล้ว และไม่ได้นับจำนวนหุ้น ณ วันใดวันหนึ่งโดยเฉพาะ
คุณสามารถวัดความแตกต่างนี้ได้ด้วยตนเองแทนที่จะเชื่อตามข้อมูลที่ระบุไว้ เพียงแค่นำมูลค่าตามราคาตลาดที่เผยแพร่มาหารด้วยราคาปิดของวันเดียวกัน คุณจะได้จำนวนหุ้นที่ใช้คำนวณมูลค่าดังกล่าวออกมา
สำหรับบริษัทที่เป็นที่รู้จักเหล่านี้ จำนวนหุ้นที่คำนวณย้อนกลับได้และจำนวนหุ้นแบบปรับลดที่รายงานไว้มีความแตกต่างกันระหว่าง 0.24% ถึง 4.43% โดยส่วนต่างที่กว้างที่สุดเป็นของ JPM ซึ่งมีจำนวนหุ้นที่คำนวณย้อนกลับได้ 2658 ล้านหุ้น เทียบกับ 2782 ล้านหุ้นที่ระบุในงบการเงินสำหรับรอบระยะเวลาสิ้นสุดวันที่ Dec 31, 2025 บริษัทที่ทำการซื้อหุ้นคืนตลอดทั้งไตรมาสจะมีจำนวนหุ้นคงเหลือ ณ วันสิ้นงวดน้อยกว่าค่าเฉลี่ยรายไตรมาสของบริษัทเอง ตัวเลขทั้งสองชุดนั้นถูกต้องและตอบคำถามที่แตกต่างกัน
จำนวนหุ้นเปลี่ยนแปลงเร็วเพียงใดระหว่างการรายงานแต่ละครั้ง
กลไกสองประการเป็นตัวกำหนดการเปลี่ยนแปลงของจำนวนหุ้นระหว่างการยื่นรายงาน การซื้อหุ้นคืนเป็นการยกเลิกหุ้นและทำให้จำนวนหุ้นลดลง ในขณะที่การออกหุ้นใหม่ทำให้จำนวนหุ้นเพิ่มขึ้น ไม่ว่าจะเป็นการใช้สิทธิหุ้นของพนักงานในแต่ละไตรมาส การเสนอขายหุ้นเพิ่มทุน การแปลงสภาพหุ้นกู้แปลงสภาพ และการเข้าซื้อกิจการด้วยการชำระเป็นหุ้น โครงการซื้อหุ้นคืนขนาดใหญ่จะค่อย ๆ ลดจำนวนหุ้นลงในทุกไตรมาส ซึ่งส่งผลให้ตัวเลขต่อหุ้นทุกตัวปรับเปลี่ยนตามไปด้วย เงินปันผลจะปรากฏอยู่ใน ผลตอบแทนรวมเทียบกับผลตอบแทนจากราคา ของผู้ถือหุ้น ส่วนการซื้อหุ้นคืนจะปรากฏที่นี่ ในส่วนของจำนวนหุ้น
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
toString(period_end) AS quarter_end_date,
formatDateTime(period_end, '%b %Y') AS quarter_label,
round(argMax(toFloat64(basic_shares_outstanding), filing_date) / 1e6) AS basic_shares_mm,
round(argMax(toFloat64(diluted_shares_outstanding), filing_date) / 1e6) AS diluted_shares_mm
FROM global_markets.stocks_income_statements
WHERE has(tickers, 'AAPL')
AND timeframe = 'quarterly'
AND period_end >= '2021-01-01'
AND basic_shares_outstanding > 0
AND diluted_shares_outstanding > 0
GROUP BY period_end
ORDER BY period_endในช่วงเวลาดังกล่าว จำนวนหุ้นปรับลด (diluted count) เปลี่ยนจาก 16929 ล้านหุ้นใน Mar 2021 เป็น 14810 ล้านหุ้นใน Dec 2025 เส้นทั้งสองวิ่งใกล้เคียงกันและมีทิศทางความชันไปในทางเดียวกัน โดยระยะห่างระหว่างเส้นคือส่วนเกินจากออปชันและหน่วยหุ้นจำกัด (restricted stock units): คือ 14810 ล้านหุ้นในแบบปรับลด เทียบกับ 14748 ล้านหุ้นในแบบพื้นฐานในช่วงเวลาล่าสุดบนแผนภูมิ ทุกจุดบนเส้นเหล่านั้นคือค่าเฉลี่ยของไตรมาสที่ปิดงบไปแล้ว ณ เวลาที่เผยแพร่ ราคาตลาดปัจจุบันที่นำไปคูณกับตัวเลขเหล่านี้จึงเป็นส่วนผสมระหว่างตัวเลขปัจจุบันและตัวเลขในอดีต ซึ่งเป็นสิ่งที่แหล่งข้อมูลทุกแห่งต้องแลกมา กลไกเบื้องหลังความชันเหล่านี้ถูกอธิบายไว้ใน การซื้อหุ้นคืนเทียบกับเงินปันผล
เหตุใดมูลค่าตามราคาตลาดและน้ำหนักในดัชนีจึงไม่เท่ากัน
Free float คือจำนวนหุ้นที่ออกและเรียกชำระแล้วหักด้วยหุ้นที่ไม่สามารถซื้อขายได้จริงในตลาด ได้แก่ หุ้นที่ถือโดยผู้ก่อตั้งและครอบครัว หุ้นที่ถือโดยรัฐบาล การถือหุ้นไขว้เชิงกลยุทธ์ระหว่างบริษัท และหุ้นที่ยังไม่ได้รับสิทธิหรือหุ้นที่มีข้อจำกัด ผู้ให้บริการดัชนีรายใหญ่จะคำนวณน้ำหนักของสมาชิกโดยใช้มูลค่าตามราคาตลาดที่ปรับด้วยสัดส่วนหุ้นหมุนเวียน (float adjusted market cap) แทนที่จะใช้มูลค่าตามราคาตลาดเต็มจำนวน เนื่องจากกองทุนดัชนีสามารถซื้อได้เฉพาะหุ้นที่มีการเสนอขายจริงเท่านั้น คู่มือของเราเรื่อง หุ้น Free float คืออะไร ได้อธิบายรายละเอียดเกี่ยวกับวิธีการปรับค่าดังกล่าวไว้
ลองพิจารณาบริษัทสมมติผ่านตัวเลขทั้งสองแบบ บริษัทมีหุ้นที่ออกและเรียกชำระแล้วหนึ่งพันล้านหุ้นที่ราคาหุ้นละ 40 ดอลลาร์ ส่งผลให้มีมูลค่าตามราคาตลาดรวม 4 หมื่นล้านดอลลาร์ ผู้ก่อตั้งถือหุ้นอยู่ 250 ล้านหุ้นในลักษณะกลุ่มก้อนที่ไม่เคยนำออกมาขายในตลาด ทำให้เหลือหุ้น Free float อยู่ 750 ล้านหุ้น และมีมูลค่าที่ปรับด้วยสัดส่วนหุ้นหมุนเวียนอยู่ที่ 3 หมื่นล้านดอลลาร์ ในดัชนีที่มีมูลค่ารวมของสมาชิกที่ปรับด้วยสัดส่วนหุ้นหมุนเวียนอยู่ที่ 30 ล้านล้านดอลลาร์ บริษัทนี้จะมีน้ำหนักอยู่ที่ประมาณร้อยละ 0.10 หากใช้น้ำหนักจากมูลค่าตามราคาตลาดเต็มจำนวนที่ 4 หมื่นล้านดอลลาร์ จะทำให้น้ำหนักอยู่ที่ประมาณร้อยละ 0.13 ตัวเลขทั้งสองไม่ได้มีความผิดพลาดแต่อย่างใด มูลค่าตามราคาตลาดตอบคำถามว่าส่วนของผู้ถือหุ้นทั้งหมดมีมูลค่าเท่าใด ส่วนน้ำหนักในดัชนีตอบคำถามว่าหุ้นที่สามารถซื้อขายได้นั้นสามารถรองรับเงินลงทุนของกองทุนได้มากน้อยเพียงใด
นี่คือเหตุผลที่บริษัทหนึ่งอาจมีอันดับมูลค่าตามราคาตลาดเป็นอันดับที่ห้าในตลาด แต่กลับมีน้ำหนักในดัชนีต่ำกว่าบริษัทอันดับที่เจ็ด การถือหุ้นกระจุกตัวโดยคนในบริษัททำให้ Free float ลดลง และน้ำหนักในดัชนีก็จะลดลงตามไปด้วย
หนึ่งบริษัท สอง Ticker
บริษัทที่มีหุ้นสองประเภทคือธุรกิจเดียวที่มี Ticker สองตัว โดยปกติจะแยกกันด้วยสิทธิในการออกเสียง Alphabet เป็นกรณีที่คุ้นเคยกันดี ผู้ให้บริการข้อมูลจัดการเรื่องนี้ได้สองวิธีซึ่งต่างก็มีเหตุผลรองรับ วิธีแรกคือการแสดงมูลค่าตลาด (Market cap) ของทั้งบริษัทเทียบกับ Ticker ของหุ้นทุกประเภท โดยมองว่าธุรกิจมีมูลค่าเดียว ส่วนอีกวิธีคือการแบ่งมูลค่าตามประเภทหุ้นและนับเฉพาะจำนวนหุ้นของประเภทนั้นๆ
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
ticker,
round(argMax(toFloat64(market_cap), date) / 1e9, 1) AS market_cap_bn,
round(argMax(toFloat64(market_cap) / toFloat64(price), date) / 1e6) AS implied_shares_mm,
argMax(formatDateTime(date, '%b %e, %Y'), date) AS priced_on
FROM global_markets.stocks_ratios
WHERE ticker IN ('GOOGL', 'GOOG', 'FOXA', 'FOX')
AND price > 0
AND market_cap > 0
GROUP BY ticker
ORDER BY market_cap_bn DESCโปรดอ่านข้อมูลในตารางเป็นคู่ๆ GOOGL มีมูลค่าตลาดอยู่ที่ 4333.1 พันล้านดอลลาร์ และ GOOG มีมูลค่าอยู่ที่ 4322.9 พันล้านดอลลาร์ ในกรณีที่หุ้นสองประเภทของบริษัทเดียวกันแสดงมูลค่าเท่ากัน แสดงว่าผู้ให้บริการข้อมูลกำลังใช้วิธีรวมยอด และจำนวนหุ้น 12230 ล้านหุ้นที่ระบุในแถวนั้นคือจำนวนหุ้นรวมของทั้งบริษัทที่หารด้วยราคาของหุ้นประเภทเดียว ไม่ใช่จำนวนหุ้นจริงของประเภทนั้นๆ ในกรณีที่มูลค่าแตกต่างกัน แสดงว่าหุ้นแต่ละประเภทถูกนับแยกกัน และเมื่อนำทั้งสองแถวมารวมกันจะได้มูลค่าของทั้งธุรกิจ
ผลที่ตามมาจะปรากฏให้เห็นในการคัดกรองข้อมูลและยอดรวม การรวมมูลค่าตลาดของ Ticker ทั้งหมดในรายการจะทำให้เกิดการนับซ้ำสำหรับชื่อบริษัทที่มีหุ้นสองประเภทแบบรวมยอดทุกแห่ง โปรดตรวจสอบหนึ่งคู่ก่อนที่จะเชื่อถือยอดรวมใดๆ หากทั้งสองแถวแสดงมูลค่าเท่ากัน คุณต้องนำแถวใดแถวหนึ่งออกจากการคำนวณยอดรวมนั้น
วิธีตรวจสอบว่าจำนวนหุ้นที่แสดงเป็นข้อมูลเก่าหรือไม่
จำนวนหุ้นที่เผยแพร่ทุกตัวมีอายุของข้อมูล โดยตัวเลขดังกล่าวถูกดึงมาจากรายงานที่ครอบคลุมรอบระยะเวลาซึ่งสิ้นสุดลงก่อนที่รายงานจะถูกเผยแพร่ และจะคงค้างอยู่เช่นนั้นจนกว่ารายงานฉบับถัดไปจะออกมา ดังนั้น การซื้อหุ้นคืนที่เพิ่งเกิดขึ้นเมื่อสัปดาห์ที่แล้วจึงยังไม่ถูกรวมอยู่ในตัวเลขนี้
SQL เบื้องหลังตัวเลขแต่ละตัว
SELECT
ticker,
toUInt32(dateDiff('day', last_period, today())) AS report_age,
formatDateTime(last_period, '%b %e, %Y') AS period_covered
FROM
(
SELECT
arrayJoin(tickers) AS ticker,
max(period_end) AS last_period
FROM global_markets.stocks_income_statements
WHERE hasAny(tickers, ['AAPL', 'MSFT', 'NVDA', 'KO', 'JPM', 'XOM', 'WMT', 'PG'])
AND timeframe = 'quarterly'
AND diluted_shares_outstanding > 0
GROUP BY ticker
)
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'KO', 'JPM', 'XOM', 'WMT', 'PG')
ORDER BY report_age DESCเมื่อวัดจากวันสิ้นสุดรอบระยะเวลาที่ข้อมูลแต่ละชุดครอบคลุม ข้อมูลที่เก่าที่สุดในที่นี้คือ WMT ซึ่งมีอายุ 282 วัน และข้อมูลล่าสุดคือ KO ซึ่งมีอายุ 37 วัน ปฏิทินรอบปีบัญชีเป็นสาเหตุหลักของความแตกต่างนี้ บริษัทที่ปิดงบไตรมาสในเดือนมกราคมจะมีรอบการรายงานที่ต่างจากบริษัทที่ปิดงบในเดือนธันวาคม และตารางนี้ได้รวมข้อมูลจากทั้งสองกลุ่มเข้าด้วยกัน
มีสองวิธีในการตรวจสอบความถูกต้องของตัวเลข วิธีแรกคือการนำมูลค่าหลักทรัพย์ตามราคาตลาด (market cap) หารด้วยราคาหุ้นในรอบการซื้อขายเดียวกัน แล้วนำจำนวนหุ้นที่คำนวณได้ไปเปรียบเทียบกับจำนวนหุ้นล่าสุดที่รายงานไว้ หากตัวเลขมีความคลาดเคลื่อนเกินกว่าหนึ่งเปอร์เซ็นต์ ให้ตรวจสอบว่าแหล่งข้อมูลอ้างอิงจากรายงานฉบับใดเป็นลำดับล่าสุด วิธีที่สองคือการตรวจสอบการแตกหุ้น (stock split) ซึ่งการแตกหุ้นจะทำให้จำนวนหุ้นเพิ่มขึ้นและราคาหุ้นลดลงในเช้าวันเดียวกัน หากแหล่งข้อมูลปรับปรุงตัวเลขเพียงด้านใดด้านหนึ่งก่อนอีกด้านหนึ่ง จะส่งผลให้มูลค่าหลักทรัพย์ตามราคาตลาดที่แสดงผิดพลาดตามสัดส่วนการแตกหุ้นจนกว่าความคลาดเคลื่อนนั้นจะได้รับการแก้ไข
วิธีการรวบรวมจำนวนหุ้นเหล่านี้
จำนวนหุ้นที่แสดงในที่นี้คือตัวเลขถัวเฉลี่ยถ่วงน้ำหนักแบบพื้นฐานและแบบปรับลดจากงบกำไรขาดทุนที่ยื่นต่อหน่วยงานกำกับดูแล โดยอ้างอิงตามรอบระยะเวลาที่งบการเงินนั้นครอบคลุม แทนที่จะอ้างอิงตามเวลาที่ยื่นรายงาน คอลัมน์อายุของข้อมูลจะวัดจำนวนวันนับจากวันสิ้นสุดรอบระยะเวลานั้นจนถึงปัจจุบัน ดังนั้น ไตรมาสบัญชีที่สิ้นสุดในเดือนมกราคมจึงดูเก่ากว่าไตรมาสที่สิ้นสุดในเดือนธันวาคมเสมอเมื่อพิจารณา ณ จุดเดียวกันของปฏิทิน มูลค่าหลักทรัพย์ตามราคาตลาดและราคาปิดนำมาจากข้อมูลสรุปอัตราส่วนรายวัน ส่วนจำนวนหุ้นที่คำนวณได้มาจากการนำมูลค่าหลักทรัพย์ตามราคาตลาดหารด้วยราคาหุ้นในรอบการซื้อขายนั้น โดยข้อมูลทั้งสองส่วนถูกดึงมาจากวันที่เดียวกัน
คำถามที่พบบ่อย
มูลค่าตามราคาตลาด (Market cap) คำนวณจากราคาคูณด้วยจำนวนหุ้นที่ออกจำหน่ายทั้งหมด หรือหุ้นที่จดทะเบียนไว้?
คำนวณจากจำนวนหุ้นที่ออกและเรียกชำระแล้ว (Shares outstanding) หุ้นที่จดทะเบียนไว้ (Issued shares) จะรวมถึงหุ้นที่บริษัทซื้อคืนและถือไว้เป็นหุ้นซื้อคืน (Treasury stock) ซึ่งไม่มีสิทธิออกเสียงและไม่มีสิทธิรับเงินปันผล จึงถูกตัดออกจากจำนวนหุ้นที่ออกจำหน่าย หุ้นซื้อคืนจะปรากฏในงบดุลเป็นรายการส่วนของผู้ถือหุ้นติดลบ หากนำมารวมคำนวณจะทำให้มูลค่าบริษัทสูงเกินจริง
จำนวนหุ้นที่ออกจำหน่าย (Shares outstanding) กับจำนวนหุ้นถัวเฉลี่ยถ่วงน้ำหนัก (Weighted average shares) ต่างกันอย่างไร?
จำนวนหุ้นที่ออกจำหน่ายคือจำนวนหุ้น ณ วันที่ใดวันที่หนึ่ง ซึ่งระบุไว้บนหน้าปกของรายงาน ส่วนจำนวนหุ้นถัวเฉลี่ยถ่วงน้ำหนักคือค่าเฉลี่ยตลอดรอบระยะเวลาบัญชี โดยถ่วงน้ำหนักตามระยะเวลาที่หุ้นแต่ละส่วนมีอยู่จริง ซึ่งใช้เพื่อให้ตัวเลขกำไรต่อหุ้น (EPS) สามารถเปรียบเทียบกันได้ตลอดไตรมาสที่มีการเปลี่ยนแปลงจำนวนหุ้น ทั้งนี้ มูลค่าตามราคาตลาดจะใช้จำนวนหุ้นที่ออกจำหน่าย ส่วนกำไรต่อหุ้นจะใช้จำนวนหุ้นถัวเฉลี่ยถ่วงน้ำหนัก
เหตุใดน้ำหนักของบริษัทในดัชนีจึงต่ำกว่าที่มูลค่าตามราคาตลาดบ่งชี้?
ผู้จัดทำดัชนีจะคำนวณน้ำหนักโดยใช้มูลค่าตามราคาตลาดที่ปรับด้วยสัดส่วนหุ้นหมุนเวียน (Float adjusted market cap) ซึ่งจะตัดหุ้นที่ถือครองโดยกลุ่มผู้ถือหุ้นใหญ่หรือหุ้นที่ไม่หมุนเวียนในตลาดออกไป บริษัทที่มีผู้ก่อตั้งหรือรัฐบาลถือหุ้นในสัดส่วนสูงจะมีจำนวนหุ้นหมุนเวียนต่ำกว่าจำนวนหุ้นที่ออกจำหน่ายทั้งหมดมาก ทำให้น้ำหนักในดัชนีลดลงตามสัดส่วนดังกล่าว
จำนวนหุ้นมีการเปลี่ยนแปลงบ่อยเพียงใด?
ในความเป็นจริงมีการเปลี่ยนแปลงตลอดเวลา แต่ในข้อมูลจะอัปเดตเป็นรายไตรมาส การซื้อหุ้นคืน การใช้สิทธิหุ้นพนักงาน (Employee stock vesting) การใช้สิทธิ option และการแปลงสภาพหุ้นกู้แปลงสภาพ ทำให้จำนวนหุ้นเปลี่ยนแปลงได้ทุกสัปดาห์ ในขณะที่จำนวนหุ้นที่ประกาศจะอัปเดตก็ต่อเมื่อมีการเผยแพร่รายงานฉบับถัดไป ช่องว่างระหว่างช่วงเวลานี้คือความล่าช้าของข้อมูลที่ผู้ให้บริการข้อมูลทุกรายต้องเผชิญ
ทุกตารางในที่นี้ใช้ข้อมูลจาก SQL ที่ระบุไว้ด้านล่าง หากต้องการทราบจำนวนหุ้นเบื้องหลังมูลค่าตามราคาตลาดสำหรับบริษัทที่ไม่ได้ระบุในหน้านี้ สามารถสอบถามผ่าน Strasmore terminal ได้โดยตรง