“Excel สร้างกราฟแบบนี้ได้ไหมคะ?” ลูกศิษย์คนหนึ่งถาม
กราฟที่ว่า หน้าตาแบบนี้ครับ

“สร้างได้ครับ แต่โดยส่วนตัวไม่ค่อยแนะนำ” ผมตอบ
“ทำไมล่ะคะ?”
“เพราะวิธีสร้างค่อนข้างจุกจิก และกราฟอาจสื่อความหมายไม่ชัดเจนครับ”
จุกจิกยังไง? ไม่ชัดเจนยังไง? แล้วจะแก้ไขยังไง?
ขออธิบายด้วยบทความนี้ครับ…
การสร้างกราฟนี้ค่อนข้างจุกจิก เพราะไม่ใช่กราฟมาตรฐานใน Excel
กราฟแท่ง (Column Chart) ใน Excel มี 3 แบบคือ
- Clustered Column (คู่กัน)
- Stacked Column (ซ้อนกัน)
- 100% Stacked Column (ซ้อนกันแล้วมีความสูงเท่ากัน แต่สัดส่วนต่างกัน)

(กราฟ 3 มิติ ก็เป็นในลักษณะเดียวกัน)
แต่กราฟนี้เป็นกราฟที่แสดงคู่กัน แถมยังซ้อนกันอีกต่างหาก อาจเรียกได้เป็น
Clustered Stacked Column Chart
ไม่สามารถสร้างได้ด้วยวิธีทางตรง ต้องสร้างด้วยวิธีทางอ้อม
อ้อมยังไง?
ถ้า “แบไต๋” กราฟ จะได้หน้าตาแบบนี้ครับ

งงไหมครับ?
(พยักหน้ากันเป็นแถว ^^)
กราฟนี้เกิดจากกราฟ Stacked Column และ Clustered Column ซ้อนกันในกราฟเดียว
มี 5 ซีรีส์ คือ
- Product 1 (Stacked Column)
- Product 2 (Stacked Column)
- Product 3 (Stacked Column)
- Invisible (Clustered Column)
- Budget (Clustered Column)
เทคนิคคือเซ็ตกราฟ Stacked Column เป็น Primary Vertical Axis

และเซ็ตกราฟ Clustered Column เป็น Secondary Vertical Axis
กราฟแท่งสีขาว (Invisible) ถูกสร้างขึ้นมาคู่กับกราฟแท่งสีเทา (Budget) จุดประสงค์เพื่อจัดกราฟแท่งสีเทาให้ได้ตำแหน่งตามต้องการ

เมื่อได้ตำแหน่งของกราฟแท่งสีเทาตามต้องการแล้ว ปรับค่ากราฟแท่งสีขาว (Invisible) ให้เท่ากับศูนย์
(อาจกำหนดให้เป็น 0 ตั้งแต่แรกก็ได้ เหตุผลที่ใส่ค่าไว้เพื่อปรับตำแหน่งกราฟสีเทาได้ง่ายขึ้น)
เทคนิคหลักมีแค่นี้
ลองมาดูวิธีสร้างแบบ step-by-step กันครับ…
เริ่มจากเตรียมข้อมูลให้ได้ลักษณะนี้ก่อน

(ค่า Invisible อาจกำหนดให้เป็น 0 ตั้งแต่แรกก็ได้ เพื่อให้เห็นภาพและง่ายต่อความเข้าใจ ในที่นี้กำหนดให้ = 60)
จากข้อมูลที่เตรียมไว้ สร้างกราฟ Stacked Column ขึ้นมา

จะได้กราฟหน้าตาแบบนี้

คลิกขวาที่กราฟใดก็ได้ แล้วเลือก Change Series Chart Type

ปรับกราฟ Invisible และ Budget ให้อยู่ใน Secondary Axis และเปลี่ยนให้เป็น Clustered Column

(ถ้าสร้างกราฟด้วย Excel 2007/ 2010 ขั้นตอนการปรับกราฟอาจยุ่งยากกว่าเล็กน้อย)
ลบ Gridlines และเส้นขอบ (Border) ของ Chart Area เพื่อให้อ่านง่าย
ได้กราฟหน้าตาแบบนี้ (ดูงงๆหน่อย)

คลิกขวากราฟ Budget (หรือ Invisible ก็ได้) แล้วเลือก Format Data Series

คลิกไอคอนรูปกราฟที่มุมซ้ายบน ปรับ Series Overlap ให้มีค่า -100% และปรับ Gap Width ให้มีค่า(ประมาณ) 20%
(เพื่อจัดตำแหน่งกราฟ Budget ให้ได้ตามต้องการ)

เสร็จแล้วจะได้หน้าตาแบบนี้ (ดูแล้วอึดอัดมาก)

ลบตัวเลข (60) ของกราฟ Invisible ในตารางข้อมูลทิ้งไป
(จริงๆแล้วไม่ต้องใส่ตัวเลขตั้งแต่แรกก็ได้ แต่ใส่เพื่อให้ปรับกราฟได้ง่ายขึ้น)

พอลบตัวเลขแล้ว กราฟดูเป็นรูปเป็นร่างขึ้น

คลิกขวากราฟ Stacked Column (Product 1 หรือ Product 2 หรือ Product 3 ก็ได้) เลือก Format Data Series
แล้วปรับ Gap Width ให้มีขนาด(ประมาณ) 250%

ใกล้ความจริงแล้ว…

คลิก Legend ตรงคำว่า Invisible แล้วกด Delete เพื่อลบทิ้ง
คลิก Secondary Vertical Axis (แกนขวา) แล้วกด Delete เพื่อลบทิ้ง
เปลี่ยน Chart Title ให้สื่อความหมาย โดยอาจลิงค์ข้อมูลจากเซลล์ A1
(พิมพ์คำว่า “2016: Actual vs Budget” ที่เซลล์ A1)
คลิก Chart Title/ คลิก Formula Bar/ พิมพ์ = / คลิกเซลล์ A1/ Enter

ปรับตำแหน่งของ Legend ให้เหมาะสม โดยคลิกขวาที่ Legend/ Format Legend/ ปรับให้เป็น Top Right และไม่ต้องเลือกออปชัน Show the legend without overlapping the chart

ปรับขนาดของ Legend ให้เหมาะสม
เปลี่ยนสีให้กราฟให้อ่านง่ายขึ้น
ถ้าไม่คิดอะไรมาก แบบนี้คือเสร็จแล้ว

แต่บังเอิญผมเป็นคนคิดมาก ^^
มีจุดที่ควรปรับเล็กน้อยคือ ตำแหน่งชื่อเดือนไม่อยู่กึ่งกลางระหว่างกราฟ เวลาอ่านข้อมูลแล้วรู้สึกตะขิดตะขวง

เหตุผลที่ชื่อเดือน (Category Label) ไม่อยู่กึ่งกลางระหว่างกราฟ เพราะชื่อเดือนนี้เป็นชื่อเดือนของกราฟ Stacked Column ดังนั้นชื่อจึงอยู่ตรงตำแหน่งกราฟ Stacked Column เพียงอย่างเดียว (ไม่อยู่ระหว่างกลางของสองกราฟ)
วิธีแก้แบบง่ายๆคือ สร้างคอลัมน์ขึ้นมาใหม่ (เช่น Insert Column B) แล้วให้คอลัมน์นี้มีค่าเท่ากับชื่อเดือน แต่เพิ่มช่องว่าง (space) ด้านหน้าเพื่อให้ชื่อเดือนเขยิบไปทางขวาเล็กน้อย

ลิงค์ค่า Category Label กับคอลัมน์ที่เพิ่งสร้างใหม่ โดยคลิกขวาที่กราฟ เลือก Select Data

ที่มุมขวา (Horizontal (Category) Axis Labels) คลิกปุ่ม Edit

เลือกข้อมูล Category Label ที่เตรียมไว้ แล้วคลิก OK

เสร็จแล้ววว!!

(ขอพักเหนื่อยแป๊ป…)
.
เอาล่ะ… เทคนิคการสร้างไม่ใช่ปัญหาแล้ว แต่ขอแนะนำว่ากราฟนี้ไม่ควรใช้
(ร้อง “อ้าว” กันเป็นแถว ^^)
เพราะอะไรน่ะหรือครับ?
ลองนึกภาพว่า เรากำลังนำเสนอในที่ประชุม มีคนเข้าประชุมเต็มห้องเลย นำเสนอทีละสไลด์จนมาถึงกราฟนี้
กราฟหน้าตาแบบนี้ ควรพูดอะไรตอนนำเสนอดีครับ?
ติ๊กต่อก ติ๊กต่อก…
กราฟนี้สื่อความหมายได้หลายแบบ ไม่ว่าจะเป็น
- เดือนใดบ้างที่ยอด Actual สูงกว่า Budget (หรือต่ำกว่า Budget)
- ยอดขายเดือน 8 และ 9 สูงเพราะผลกระทบจากฤดูกาล (Seasonal Impact)
- Product 1 มียอดขายสูงสุด Product 2 มียอดขายรองลงมา และ Product 3 มียอดขายน้อยที่สุด
- Product 1 คือตัวผลักดันยอดขายรวมของแต่ละเดือน (Key Driver)
- เป้าหมาย (Budget) แต่ละเดือนมีค่าไม่เท่ากัน
- ฯลฯ
ถ้ากราฟนึงสื่อความหมายได้หลากหลาย อาจแปลโดยนัยว่ากราฟนั้นไม่สื่อความหมายอะไรเลย
เพราะถ้านำเสนอกราฟนี้กับคน 10 คน
ทั้ง 10 คน อาจตีความหมายแตกต่างกัน !
กราฟที่ดีควรสื่อความหมายชัดเจนในตัวเอง เห็นปุ๊ปรู้ปั๊ปว่าผู้นำเสนอต้องการสื่ออะไร
ถ้าประเด็นที่ต้องการนำเสนอคือ “เดือนใดบ้างที่ยอด Actual สูงกว่า Budget (หรือต่ำกว่า Budget)”
กราฟนี้อาจสื่อความหมายได้ดีกว่า

เส้นตั้งฉากที่ลากเชื่อมระหว่าง Actual และ Budget เรียกว่า High-Low Lines เป็นองค์ประกอบหนึ่งของกราฟเส้น สร้างได้เมื่อมีกราฟเส้น 2 เส้น (แต่ถ้ามีเส้นเดียวจะสร้างไม่ได้)
วิธีสร้างคือ คลิกกราฟ/ Design/ Add Chart Element/ Lines/ High-Low Lines

ถ้าประเด็นที่ต้องการนำเสนอคือ “ยอดขายเดือน 8 และ 9 สูงเพราะผลกระทบจากฤดูกาล (Seasonal Impact)”
กราฟนี้อาจสื่อความหมายได้ดีกว่า

ถ้าต้องการสื่อตัวเลข Actual ก็ควรลดความเด่นของ Budget โดยอาจนำกราฟไว้ด้านหลังแบบนี้

กราฟแบบนี้ชื่อว่า “กราฟเทอร์โมมิเตอร์”
เทคนิคสร้างกราฟเทอร์โมมิเตอร์คือ

ดูรายละเอียดการสร้างกราฟเทอร์โมมิเตอร์ได้จากคลิปสอนสร้างกราฟเทอร์โมมิเตอร์ ละเอียดสุดๆ!
หรือถ้าต้องการลดความเด่นของ Budget อาจใช้กราฟแบบนี้ก็ได้

กราฟนี้สร้างไม่ยากครับ เพียงเปลี่ยน Budget ให้เป็นกราฟเส้นที่มี Marker (Line with Markers)
ปรับ Marker ให้เป็นแบบขีด (Dash) แล้วทำให้กราฟเส้นไม่มีเส้น (No Line)

จะเห็นได้ว่ากราฟ 2 แบบสุดท้าย (Thermometer, Stacked Column ที่มี Dash) ให้ความรู้สึกอ่านง่ายกว่ากราฟแบบแรก เพราะกราฟ Budget ถูกลดความเด่นลงไป (ทำให้กราฟ Stacked Column ดูเด่นขึ้น)
กราฟที่ดูเด่นทุกแท่ง คือกราฟที่ดูไม่เด่นสักแท่งเลย
ไม่ต่างอะไรกับการ “บรรยาย” ตัวเลข
ผู้ฟังจะเห็นว่ากราฟนี้มีตัวเลขอะไรบ้าง แต่ไม่รู้ว่าผู้พูดต้องการสื่อประเด็นอะไร
เผลอๆใช้ตารางอาจสื่อความหมายดีกว่าเสียอีก
ยิ่งถ้าไม่มีคนนำเสนอกราฟ (เช่น อ่านจากรีพอร์ต ไม่ได้นั่งฟังในห้องประชุม) มีโอกาสสูงมากที่จะตีความหมายไปคนละทาง
กราฟที่ดี ไม่จำเป็นต้องเป็นกราฟที่ดูไฮไซ ไม่จำเป็นต้องเป็นกราฟที่มีขั้นตอนสร้างซับซ้อน ไม่จำเป็นต้องเป็นกราฟที่มีสีสันอลังการ
แต่ขอให้เป็นกราฟที่สื่อความหมายด้วยตัวมันเองก็พอแล้ว
แม้เป็นแค่กราฟแท่งแบบเบสิคสุดๆ แต่ถ้ากราฟนั้นสื่อความหมายที่ผู้พูดต้องการนำเสนอ
หรือถ้าคน 10 คนเห็นแล้วเข้าใจแบบเดียวกัน
กราฟเบสิคสุดๆนั้น ดีกว่ากว่ากราฟไฮโซเป็นไหนๆครับ ^__^
.
ไฟล์ตัวอย่างของทุกกราฟในบทความนี้ สามารถดาวน์โหลดได้จากลิงค์นี้ครับ
ClusteredStackedColumnChart_170712
.
หากคุณชอบบทความแนวนี้ สามารถอัพเดตบทความใหม่ๆโดยคลิก Like เฟสบุ๊คแฟนเพจ วิศวกรรีพอร์ต หรือคลิก ที่นี่
อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^_^
เป็น graph ที่น่าสนใจมากค่ะ รบกวนน้องบิวช่วยอธิบายการอ่าน graph ลักษณะนี้ด้วยนะค่ะ เช่น Stacked Bar chart and Stacked Column Chart เพราะไม่ค่อยเข้าใ่จในการอ่าน graph ลักษณะนี้ค่ะ ขอบคุณมากนะค่ะ
โดยส่วนตัวผมไม่ค่อยชอบกราฟ Stacked เท่าไรครับ เพราะไม่สามารถสื่อสารได้ทันที
ชอบกราฟแบบไม่มี Stacked มากกว่าครับ
เป็นกราฟที่ดูอยากจริงๆด้วย 55
และผมอยากให้ช่วยสอนวิธีทำกราฟอีกประเภทครับ ไม่รู้ว่า excel จะทำได้ไหม คือกราฟ CMK ครับ
ถ้าอยากเพิ่มข้อมูลลงไป High-Low Lines ด้วยได้มั้ยค่ะว่าผลต่างเท่าไหร่ ต้องทำยังไงค่ะ
ลองดูบทความนี้ครับ น่าจะตรงกับที่ต้องการ https://reportingengineer.com/2018/05/25/show-variance-between-line-chart-technique/
สอบถามหน่อยครับ ถ้าเรากำหนดแกน X ให้เป็นจำนวนวัน แกน Y เป็นจำนวน % งาน เราสามารถแสดงกราฟเฉพาะวันที่มี % งานมากกว่า 0 ได้ไหมครับ
ทำได้ครับ สร้างได้ตรงๆเลยครับ
อยากได้แบบ Target, Total, อยู่คนละแกน และยอด อยู่แกนเดียวกัน แกนเดียวกันมี 2 ยี่ห้อ ทำยังไงคะ
ผมอาจไม่เข้าใจคำถาม แต่คิดว่าใช้หลักการเดียวกับที่เขียนในบทความครับ เพียงแต่อาจประยุกต์ในบางจุดครับ
เคยทำกราฟ2อันเอามาเรียงแบบนี้เลยครับ เพิ่งเข้าใจว่าเด่นทั้งคู่อาจทำให้คนที่อ่านเข้าใจคนละประเด็น
แต่ในบางสถานะการณ์ด้วยปริมาณslideหรือพื้นที่ๆจำกัดอาจต้องรวบหลายๆข้อมูลมาไว้ในกราฟเดียวซึ่งก็ท้าทายในการนำเสนอครับ
ใช่ครับ ในบางบริบทมีข้อจำกัดซึ่งเป็นเรื่องท้าทายสำหรับผู้นำเสนอมากๆครับ
สอบถามเพิ่มเติมครับ ถ้าสร้างกราฟด้วย Excel 2007/ 2010 ขั้นตอนการปรับกราฟอาจยุ่งยากกว่าเล็กน้อย ขั้นตอนทำยังไงครับ
อยากให้สอนทำกราฟนี้ใน Excel 2010 ให้หน่อยได้ไหมครับ จะเป็นพระคุณอย่าสูงเลยครับ
เราสามารถสร้างกราฟแบบ scatter ที่แสดงสีที่ต่างกันหรือขนาดของจุดบนกราฟต่างกัน ตามความช้า/เร็ว หรือ มาก/น้อย ของข้อมูลได้ไหมคะ
กำลังหาวิธีทำกราฟ stacked column 2แท่งซ้อนเหลื่อมกัน สำหรับเทียบ this month vs last month ใช่ primary axis และ เพิ่ม line graph โดยใช้ secondary axis
สามารถทำได้มั้ยคะ
สอบถามค่ะ ถ้าต้องการ กราฟที่มีการซ้อนทับและคู่กัน จะทำอย่างไรคะ ทั้งClustered Column (คู่กัน)
และStacked Column ต่างจากตัวอย่างที่กราฟหนึ่งไม่ทับแต่อีกกราฟทับแล้วอยู่ติดกันค่ะ
ดูวิธีการได้จากบทความนี้ครับ https://reportingengineer.com/2018/03/16/excel-clustered-stacked-column-chart/
ใช่เลยค่ะ ขอบคุณมากๆค่ะ