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

กราฟที่ว่า หน้าตาแบบนี้ครับ

ClusteredStackedColumnChart_170712

“สร้างได้ครับ แต่โดยส่วนตัวไม่ค่อยแนะนำ” ผมตอบ

“ทำไมล่ะคะ?” ลูกศิษย์ถาม

“เพราะวิธีสร้างค่อนข้างจุกจิก และกราฟอาจสื่อความหมายไม่ชัดเจนครับ” ผมตอบ

จุกจิกยังไง? ไม่ชัดเจนยังไง? แล้วจะแก้ไขยังไง?

ขออธิบายด้วยบทความนี้ครับ…

การสร้างกราฟนี้ค่อนข้างจุกจิก เพราะไม่ใช่กราฟมาตรฐานใน Excel

กราฟแท่ง (Column Chart) ใน Excel มี 3 แบบคือ

  1. Clustered Column (คู่กัน)
  2. Stacked Column (ซ้อนกัน)
  3. 100% Stacked Column (ซ้อนกันแล้วมีความสูงเท่ากัน แต่สัดส่วนต่างกัน)

StandardColumnChart

(กราฟ 3 มิติ ก็เป็นในลักษณะเดียวกัน)

แต่กราฟนี้เป็นกราฟที่แสดงคู่กัน แถมยังซ้อนกันอีกต่างหาก อาจเรียกได้เป็น

Clustered Stacked Column Chart

ไม่สามารถสร้างได้ด้วยวิธีทางตรง ต้องสร้างด้วยวิธีทางอ้อม

อ้อมยังไง?

ถ้า “แบไต๋” กราฟ จะได้หน้าตาแบบนี้ครับ

ClusteredStackedColumnChart_Anatomy.jpg

งงไหมครับ?

(พยักหน้ากันเป็นแถว ^^)

กราฟนี้เกิดจากกราฟ Stacked Column และ Clustered Column ซ้อนกันในกราฟเดียว

มี 5 ซีรีส์ คือ

  1. Product 1 (Stacked Column)
  2. Product 2 (Stacked Column)
  3. Product 3 (Stacked Column)
  4. Invisible (Clustered Column)
  5. Budget (Clustered Column)

เทคนิคคือเซ็ตกราฟ Stacked Column เป็น Primary Vertical Axis

StackedColumn_3Series.jpg

และเซ็ตกราฟ Clustered Column เป็น Secondary Vertical Axis

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

ClusteredColumn_SecondaryAxis

เมื่อได้ตำแหน่งของกราฟแท่งสีเทาตามต้องการแล้ว ปรับค่ากราฟแท่งสีขาว (Invisible) ให้เท่ากับศูนย์

(อาจกำหนดให้เป็น 0 ตั้งแต่แรกก็ได้ เหตุผลที่ใส่ค่าไว้เพื่อปรับตำแหน่งกราฟสีเทาได้ง่ายขึ้น)

เทคนิคหลักมีแค่นี้

ลองมาดูวิธีสร้างแบบ step-by-step กันครับ…

เริ่มจากเตรียมข้อมูลให้ได้ลักษณะนี้ก่อน

RawData.jpg

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

จากข้อมูลที่เตรียมไว้ สร้างกราฟ Stacked Column ขึ้นมา

Ribbon_StackedColumn.jpg

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

Step1_StackedColumn.jpg

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

Step2_ChangeSeriesChartType

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

Step3_ComboChart.jpg

(ถ้าสร้างกราฟด้วย Excel 2007/ 2010 ขั้นตอนการปรับกราฟอาจยุ่งยากกว่าเล็กน้อย)

ลบ Gridlines และเส้นขอบ (Border) ของ Chart Area เพื่อให้อ่านง่าย

ได้กราฟหน้าตาแบบนี้ (ดูงงๆหน่อย)

Step4_StackedAndClustered.jpg

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

Step5_ClusteredFormatDataSeries.jpg

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

(เพื่อจัดตำแหน่งกราฟ Budget ให้ได้ตามต้องการ)

Step6_AdjustOverlapped_GapWidth.jpg

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

Step7_AdjustCluster.jpg

ลบตัวเลข (60) ของกราฟ Invisible ในตารางข้อมูลทิ้งไป

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

Step8_DeleteInvisible

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

Step9_NoInvisible

คลิกขวากราฟ Stacked Column (Product 1 หรือ Product 2 หรือ Product 3 ก็ได้) เลือก Format Data Series

แล้วปรับ Gap Width ให้มีขนาด(ประมาณ) 250%

Step10_GapWidth.jpg

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

Step11_AdjustGapWidth.jpg

คลิก Legend ตรงคำว่า Invisible แล้วกด Delete เพื่อลบทิ้ง

คลิก Secondary Vertical Axis (แกนขวา) แล้วกด Delete เพื่อลบทิ้ง

เปลี่ยน Chart Title ให้สื่อความหมาย โดยอาจลิงค์ข้อมูลจากเซลล์ A1

(พิมพ์คำว่า “2016: Actual vs Budget” ที่เซลล์ A1)

คลิก Chart Title/ คลิก Formula Bar/ พิมพ์ = / คลิกเซลล์ A1/ Enter

Step12_LinkChartTitle.jpg

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

Step13_FormatLegend.jpg

ปรับขนาดของ Legend ให้เหมาะสม

เปลี่ยนสีให้กราฟให้อ่านง่ายขึ้น

ถ้าไม่คิดอะไรมาก แบบนี้คือเสร็จแล้ว

Step14_AlmostDone.jpg

แต่บังเอิญผมเป็นคนคิดมาก ^^

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

Step15_PositionCategoryName.jpg

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

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

Step16_AddCategoryLabel.jpg

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

Step17_SelectData.jpg

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

Step18_CategoryLabel.jpg

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

Step19_CategoryLabel.jpg

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

Step20_Done.jpg

(ขอพักเหนื่อยแป๊ป…)

.

เอาล่ะ… เทคนิคการสร้างไม่ใช่ปัญหาแล้ว แต่ขอแนะนำว่ากราฟนี้ไม่ควรใช้

(ร้อง “อ้าว” กันเป็นแถว ^^)

เพราะอะไรน่ะหรือครับ?

ลองนึกภาพว่า เรากำลังนำเสนอในที่ประชุม มีคนเข้าประชุมเต็มห้องเลย นำเสนอทีละสไลด์จนมาถึงกราฟนี้

กราฟหน้าตาแบบนี้ ควรพูดอะไรตอนนำเสนอดีครับ?

ติ๊กต่อก ติ๊กต่อก…

กราฟนี้สื่อความหมายได้หลายแบบ ไม่ว่าจะเป็น

  • เดือนใดบ้างที่ยอด Actual สูงกว่า Budget (หรือต่ำกว่า Budget)
  • ยอดขายเดือน 8 และ 9 สูงเพราะผลกระทบจากฤดูกาล (Seasonal Impact)
  • Product 1 มียอดขายสูงสุด Product 2 มียอดขายรองลงมา และ Product 3 มียอดขายน้อยที่สุด
  • Product 1 คือตัวผลักดันยอดขายรวมของแต่ละเดือน (Key Driver)
  • เป้าหมาย (Budget) แต่ละเดือนมีค่าไม่เท่ากัน
  • ฯลฯ

ถ้ากราฟนึงสื่อความหมายได้หลากหลาย อาจแปลโดยนัยว่ากราฟนั้นไม่สื่อความหมายอะไรเลย

เพราะถ้านำเสนอกราฟนี้กับคน 10 คน

ทั้ง 10 คน อาจตีความหมายแตกต่างกัน !

กราฟที่ดีควรสื่อความหมายชัดเจนในตัวเอง เห็นปุ๊ปรู้ปั๊ปว่าผู้นำเสนอต้องการสื่ออะไร

ถ้าประเด็นที่ต้องการนำเสนอคือ “เดือนใดบ้างที่ยอด Actual สูงกว่า Budget (หรือต่ำกว่า Budget)”

กราฟนี้อาจสื่อความหมายได้ดีกว่า

TrendComparison.jpg

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

วิธีสร้างคือ คลิกกราฟ/ Design/ Add Chart Element/ Lines/ High-Low Lines

High-Low-Lines_Trick.jpg

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

กราฟนี้อาจสื่อความหมายได้ดีกว่า

SeasonalImpact.jpg

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

Thermometer.jpg

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

เทคนิคสร้างกราฟเทอร์โมมิเตอร์คือ

Thermometer_Trick.jpg

ดูรายละเอียดการสร้างกราฟเทอร์โมมิเตอร์ได้จากคลิปสอนสร้างกราฟเทอร์โมมิเตอร์ ละเอียดสุดๆ!

หรือถ้าต้องการลดความเด่นของ Budget อาจใช้กราฟแบบนี้ก็ได้

StackedColumnWithDash.jpg

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

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

StackedColumnWithDash_Trick.jpg

จะเห็นได้ว่ากราฟ 2 แบบสุดท้าย (Thermometer, Stacked Column ที่มี Dash) ให้ความรู้สึกอ่านง่ายกว่ากราฟแบบแรก เพราะกราฟ Budget ถูกลดความเด่นลงไป (ทำให้กราฟ Stacked Column ดูเด่นขึ้น)

กราฟที่ดูเด่นทุกแท่ง คือกราฟที่ดูไม่เด่นสักแท่งเลย

ไม่ต่างอะไรกับการ “บรรยาย” ตัวเลข

ผู้ฟังจะเห็นว่ากราฟนี้มีตัวเลขอะไรบ้าง แต่ไม่รู้ว่าผู้พูดต้องการสื่อประเด็นอะไร

เผลอๆใช้ตารางอาจสื่อความหมายดีกว่าเสียอีก

ยิ่งถ้าไม่มีคนนำเสนอกราฟ (เช่น อ่านจากรีพอร์ต ไม่ได้นั่งฟังในห้องประชุม) มีโอกาสสูงมากที่จะตีความหมายไปคนละทาง

กราฟที่ดี ไม่จำเป็นต้องเป็นกราฟที่ดูไฮไซ ไม่จำเป็นต้องเป็นกราฟที่มีขั้นตอนสร้างซับซ้อน ไม่จำเป็นต้องเป็นกราฟที่มีสีสันอลังการ

แต่ขอให้เป็นกราฟที่สื่อความหมายด้วยตัวมันเองก็พอแล้ว

แม้เป็นแค่กราฟแท่งแบบเบสิคสุดๆ แต่ถ้ากราฟนั้นสื่อความหมายที่ผู้พูดต้องการนำเสนอ

หรือถ้าคน 10 คนเห็นแล้วเข้าใจแบบเดียวกัน

กราฟเบสิคสุดๆนั้น ดีกว่ากว่ากราฟไฮโซเป็นไหนๆครับ ^__^

.

ไฟล์ตัวอย่างของทุกกราฟในบทความนี้ สามารถดาวน์โหลดได้จากลิงค์นี้ครับ

ClusteredStackedColumnChart_170712

.

หากคุณชอบบทความแนวนี้ สามารถอัพเดตบทความใหม่ๆโดยคลิก Like เฟสบุ๊คแฟนเพจ วิศวกรรีพอร์ต หรือคลิก ที่นี่

อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^_^