“อยากลากเส้นเชื่อมแล้วโชว์ผลต่างระหว่างกราฟเส้น 2 เส้น ทำไงดีพี่?” ตั้มถามขึ้นช่วงสายๆกลางเดือนพฤษภา

“ตอนนี้ผมทำแบบแมนวลสุดๆเลย” ตั้มเล่า

“ผมใช้วิธี Insert Line มาวางทีละเส้นๆ ส่วนตัวเลขแสดงผลต่างก็ insert Text Box มาวางทีละอันๆ เหนื่อยมากเลยพี่” ตั้มโอดครวญ

“ที่แย่สุดๆคือ พอข้อมูลเปลี่ยน ผมต้องทำใหม่ทั้งหมด”

“มีวิธีทำแบบออโต้ไหมพี่?” ตั้มพร่ำด้วยเสียงรันทด

“มีสิ กราฟแบบนี้พี่ก็เคยทำ” ผมตอบ

“จริงดิ! ทำไงอ่ะพี่ สอนหน่อยๆ!!” เสียงตั้มเต็มไปด้วยความหวัง

“เอ อยู่ๆก็ปวดไหล่ขึ้นมาแฮะ” ผมโพล่งขึ้นพร้อมเอียงคอแล้วทุบไหล่ข้างซ้าย ดังตุบ ตุบ..

“เดี๋ยวผมนวดไหล่ให้ครับพี่” ตั้มรีบตอบพลางกุลีกุจอมานวดไหล่ให้ผมทันที

“ซ้ายหน่อย ซ้ายอีกนิดนึง นั่นแหละ เออๆ ออกแรงหน่อย ยังงั้นๆ” การได้นวดไหล่ตอนทำงานนี่มันดีจริงๆ ^^

วันนั้น ตั้มต้องนวดไหล่ให้ผมถึงได้คำตอบ แต่วันนี้คุณไม่ต้องนวดไหล่ แค่อ่านบทความนี้ก็ได้คำตอบครับ ^__^

กราฟที่ตั้มต้องการ หน้าตาประมาณนี้ครับ

OneLabelColor.png

ถ้าไม่รู้เทคนิค การสร้างเส้นประเชื่อมกราฟและการโชว์ตัวเลขผลต่างของกราฟต้องใช้วิธีแมนวลเหมือนที่ตั้มทำ ซึ่งใช้พลังงานสูงมาก และถ้าตัวเลขเปลี่ยน ทุกอย่างคือจบ T_T

การจะสร้างกราฟนี้แบบอัตโนมัติ ต้องเข้าใจ 2 เทคนิคสำคัญคือ

  1. High-Low Lines
  2. Data Label แบบ Value From Cells ซึ่งเป็นฟีเจอร์ที่มีตั้งแต่ Excel เวอร์ชัน 2013 ขึ้นไป (Excel 2013/ 2016)

กราฟนี้มีบางอย่างถูกซ่อนอยู่ ถ้า “เปลือย” ออกมาให้เห็นจะๆคือ

Anatomy.png

(ได้ยินเสียงคนร้องอ๋อ ^^)

ใช่ครับ ตัวเลขแสดงผลต่างที่เห็น แท้จริงแล้วคือ Data Label ของกราฟอีกเส้น (จากภาพด้านบนคือกราฟที่ชื่อ Line Data) แต่กราฟเส้นนี้ถูกปรับให้ไม่มีเส้น (No Line)

ส่วนตัวเลขที่เห็นใช้เทคนิค Data Label แบบ Value From Cells ซึ่งเป็นฟีเจอร์ใหม่ใน Excel 2013

ส่วนเส้นประที่เชื่อมระหว่างกราฟเส้น 2 เส้น คือองค์ประกอบกราฟเส้นแบบหนึ่งที่ชื่อว่า High-Low Lines

ได้คอนเซ็ปต์แล้ว มาดูวิธีสร้างกราฟแบบ step-by-step กันครับ ^__^

สมมติต้องการแสดงผลข้อมูลนี้

Data.png

แท้จริงแล้ว กราฟนี้มี 3 เส้นคือ Actual (จากภาพคือกราฟเส้นบน) Target (จากภาพคือคือกราฟเส้นล่าง) และกราฟที่อยู่ระหว่างกลาง (เพื่อแสดงเฉพาะ Data Labels ที่เป็นตัวเลขผลต่าง)

เราต้องสร้างข้อมูลเพิ่มหนึ่งชุดเพื่อแสดงกราฟระหว่างกลางนี้

“แล้วจะสร้างข้อมูลชุดนี้ได้ยังไงครับพี่” ตั้มถาม

“บางครั้ง Actual ก็มากกว่า Target บางครั้ง Target ก็มากกว่า Actual จะหาค่ากึ่งกลางได้ยังไงครับ” ตั้มถามต่อ

ง่ายมากครับ สูตรก็คือ

= (Actual + Target)/2

หรือเขียนสูตรที่เซลล์ D2 ได้เป็น

=(B2+C2)/2

MiddleLineFormula

ได้ข้อมูลครบ 3 กราฟแล้ว !

จากนั้นสร้างกราฟจาก 3 ชุดข้อมูลนี้โดย

คลิกที่ข้อมูล (เซลล์ใดก็ได้)/ Insert/ Line

InsertLineChart.png

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

Start_1.png

(เพื่อความเข้าใจง่าย ผมขอลบ Gridlines, Chart Title และเส้นขอบกราฟทิ้งไปนะครับ)

“พี่ครับ ผมอยากใส่ชื่อกราฟที่ปลายเส้น มีเทคนิคไหมครับ” ตั้มโพล่งถามขึ้น

การใส่ชื่อกราฟที่ปลายเส้นทำได้หลายวิธี ผมขอใช้วิธีเพิ่ม Data Label ของกราฟจุดสุดท้าย แล้วเปลี่ยน Data Label จาก Value ให้เป็น Series Name

เริ่มจากคลิกที่กราฟจุดสุดท้ายจุดเดียวก่อน (คลิกครั้งแรกจะเสมือนคลิกทุกจุด ให้คลิกจุดสุดท้ายจุดเดียวอีกครั้ง) แล้วคลิกขวา เลือก Add Data Label

Start_2_AddDataLabel.png

(สังเกตคำว่า Data Label จะไม่มีตัว s)

(ถ้า Data Label มีตัว s แสดงว่าคลิกทุกจุด ให้คลิกเฉพาะจุดสุดท้ายจุดเดียว)

จะได้ Data Label ของจุดสุดท้ายจุดเดียว ข้อมูลที่แสดงคือค่าของตัวเลขจุดนั้น (Value)

Start_3.png

สิ่งที่เราต้องการไม่ใช่ตัวเลข (Value) แต่คือชื่อกราฟ (Series Name) ดังนั้นให้คลิกขวาจุดสุดท้ายจุดเดียวอีกครั้ง แล้วเลือก Format Data Label

Start_4_FormatDataLabel.png

(ถ้า Data Label มีตัว s แสดงว่าเผลอคลิกทุกจุด ให้คลิกเฉพาะจุดสุดท้ายจุดเดียว)

เราต้องการชื่อกราฟ (Series Name) ให้ติ๊กช่อง Series Name (ใน “Label Contains”) และไม่ต้องการตัวเลข (30) ให้ติ๊กช่อง Value ทิ้งไป

ได้ชื่อกราฟที่ปลายเส้นแล้ว !!

Start_6.png

ทำแบบนี้อีกครั้งกับกราฟ Target และปรับให้สวยงาม

Start_7.png

ง่ายใช่ไหมล่ะ ^__^

คราวนี้มาเพิ่มตัวเลขแสดงผลต่างระหว่างกราฟเส้นกัน

ตัวเลขที่ว่าก็คือ Data Labels ของกราฟเส้นกลางนั่นเอง

เริ่มจาก Add Data Labels ให้ขึ้นมาตรงกลางก่อน โดยคลิกกราฟแล้วไปที่เครื่องหมายบวก (+, ด้านบนขวา)/ Data Labels/ Center

Start_8.png

“อ้าว ตัวเลขที่โชว์ม้นคือค่าของกราฟนั้น ไม่ใช่ผลต่างของกราฟเส้นบนเส้นล่างอ่ะครับพี่” ตั้มถาม

เราสามารถปรับ Data Labels ให้แสดงตัวเลขที่ต้องการได้ โดยใช้ฟีเจอร์ที่ชื่อว่า Value From Cells ที่มีตั้งแต่เวอร์ชัน 2013 (Excel 2007/ 2010 ใช้ไม่ได้)

ต้องคำนวณก่อนว่าตัวเลขที่ต้องการแสดงคืออะไร หรือใส่สูตรง่ายๆเป็น Actual – Target ในคอลัมน์ E

Start_8_1.png

ได้ตัวเลขที่ต้องการแสดงผลแล้ว มาดูวิธีนำตัวเลขชุดนี้เข้าไปแทนที่ Data Labels อันเก่ากัน ^__^

เริ่มจากคลิกขวาที่ Data Labels แล้วเลือก Format Data Labels

Start_9.png

คลิกเลือกคำว่า “Value From Cell” แล้วระบุว่าจะใช้ข้อมูลชุดใดแสดงเป็น Data Labels (ลงในกล่อง Data Label Range)

Start_10.png

Data Labels จะแสดงทั้ง Value From Cells และ Value ซึ่งเราต้องการแค่ Value From Cells เพียงอย่างเดียว ดังนั้นให้ยกเลิกการคลิกช่อง Value (ดังภาพ)

Start_11.png

ปรับกราฟเส้นกลางให้ไม่แสดงเส้น (No Line) และลบ Legend ทิ้งไป

ได้ตัวเลขแสดงผลต่างแล้ว !!

Start_12.png

คราวนี้มาสร้างเส้นเชื่อมระหว่างกราฟเส้นสองเส้นในแนวดิ่งกัน เส้นเชื่อมที่ว่านี้คือ High-Low Lines

คลิกที่กราฟ/ Design/ Add Chart Element/ Lines/ High-Low Lines

Start_13.png

High-Low Lines ที่ได้มีสีเข้มเกินไป จะไปทับตัวเลขจนมองไม่ช้ด ควรปรับให้จางลง

ปรับง่ายๆแบบนี้ครับ คลิกขวาที่ High-Low Lines/ Format High-Low Lines

ปรับเส้นให้โปร่งแสง (Transparency) ประมาณ 80%

และปรับให้เป็นเส้นประ (Dash Type)

Start_15.png

เพื่อความสวยงาม อาจปรับสีกราฟ Target ให้เป็นสีเทา ปรับสีฟอนต์ของชื่อกราฟให้เหมือนกัน รวมถึงปรับองค์ประกอบอื่นๆให้เรียบร้อย

เสร็จแว๊ว!!

Start_16.png

“สุดยอดเลยครับพี่” ตั้มตะโกน

“ต่อไปนี้ไม่ต้องทำแบบแมนวลแล้ว” ตั้มร่ำร้องด้วยความดีใจ กำมือทั้งสองแล้วเขย่าแรงๆ

“ว่าแต่….”

“อะไร” ผมถามกลับ

“อยากให้ตัวเลขติดลบในกราฟแสดงเป็นสีแดงอ่ะครับพี่ “ 

กราฟที่ตั้มต้องการหน้าตาแบบนี้ครับ

TwoLabelColor.png

ในทางเทคนิคแล้วสามารถทำได้ครับ แต่โครงสร้างกราฟจะเปลี่ยนไป

ด้วย Excel เวอร์ชันปัจจุบัน (Excel 2016) ยังไม่สามารถเขียนสูตรเพื่อกำหนดสีของ Data Labels ให้เป็นแบบอัตโนมัติได้ ถ้าอยากให้สีต่างกัน ทางแก้คือต้องสร้างกราฟขึ้นมาอีกเส้น

นั่นคือ Data Labels ที่เป็นค่าบวก กับ Data Labels ที่เป็นค่าลบ มาจากกราฟคนละเส้น !

โดยเส้นแรก (เส้นเดิม) แสดง Data Label กรณีเป็นบวก กำหนดสีให้เป็นสีเทา

เส้นที่สอง (ต้องสร้างขึ้นใหม่) แสดง Data Label กรณีเป็นลบ กำหนดสีให้เป็นสีแดง (หรือสีส้ม)

ถ้าเปิดโปงเทคนิคให้เห็นแบบชัดๆ จะมีกราฟ 4 เส้นแบบนี้

Anatomy_TwoColor.png

งงไหมครับ?

ถ้างง จากกราฟที่เราทำเสร็จเมื่อกี๊ มาปรับกันต่อเพื่อให้เปลี่ยนสีได้ฟอนต์ได้อัตโนมัติครับ ^__^

จากเมื่อกี๊ กราฟของเราแสดงตัวเลขติดลบเป็นสีเดียวกับตัวเลขบวก (สีเทา)

2_1.png

ตัวเลขนี้จะถูกปรับให้แสดงเฉพาะค่าที่เป็นบวกเท่านั้น ส่วนตัวเลขติดลบจะใช้วิธีสร้างจากกราฟอีกเส้น

มาปรับให้กราฟนี้แสดงเฉพาะค่าที่เป็นบวกก่อน

อ้อ! ปรับให้มีเครื่องหมายบวก (+) นำหน้าตัวเลขเลยดีกว่า

เทคนิคที่ใช้คือปรับ Custom Number Format โดยลากครอบข้อมูลที่เป็น Data Labels (จากภาพคือ E2:E21) คลิกขวา/ Format Cells/ Number

ตรงช่อง Type: ให้พิมพ์ Custom Number Format เป็น

+0;;0

2_2.png

ความหมายของ +0;;0 คือถ้าค่าเป็นบวก ให้แสดงผลโดยมีเครื่องหมายบวก (+) นำหน้าตัวเลข

ถ้าค่าเป็นลบ ไม่ต้องแสดงผล

ถ้าค่าเป็นศูนย์ ให้แสดงผลเป็น 0

(โครงสร้างเต็มของ Custom Number Format คือ บวก; ลบ; ศูนย์; ตัวหนังสือ)

ด้วย Custom Number Format แบบนี้ ตัวเลขติดลบจะถูกซ่อนทั้งในตารางและในกราฟ

2_3.png

เจ๋งใช่ไหมล่ะ ^^

คราวนี้เรามาเพิ่มกราฟที่แสดงเฉพาะ Data Label ติดลบ เพื่อให้ตำแหน่งของ Data Labels ที่เป็นบวกและลบตรงกัน กราฟที่ว่านี้จึงมีค่าเท่ากับกราฟค่าบวกนั่นเอง!

2_4.png

เพิ่มข้อมูลชุดใหม่ที่สร้าง (จากภาพคือคอลัมน์ F) ลงไปในกราฟ (จากภาพคือกราฟเส้นประสีส้ม)

2_5.png

เพิ่ม Data Labels ของกราฟเส้นใหม่ (เส้นประสีส้ม) ที่สร้าง โดยคลิกที่กราฟ/ เครื่องหมายบวก (+) ด้านบน/ Data Labels/ Center

2_6.png

Data Labels ที่เพิ่มคือค่า (Value) ของกราฟนั้น ซึ่งไม่ใช่ค่าที่ต้องการ เราต้องเปลี่ยนค่านี้ให้เป็น Data Labels ที่ต้องการโดยเลือกให้เป็นแบบ Value From Cells

ก่อนจะไปถึงขั้นน้้น เรามาเพิ่ม Data Labels เฉพาะตัวเลขที่ติดลบในชุดข้อมูลกันก่อน

2_7.png

ข้อมูลชุดนี้จะถูกใช้เป็น Data Labels ของค่าที่เป็นลบ ดังนั้นการแสดงผลของข้อมูลชุดนี้ต้องแสดงเฉพาะค่าที่เป็นลบเท่านั้น หรือต้องปรับ Custom Number Format เป็น

;-0;

2_8.png

ความหมายของ Custom Number Format แบบ ;-0; คือ

ถ้าค่าเป็นบวก ไม่แสดงผล

ถ้าค่าเป็นลบ ให้แสดงผลโดยมีเครื่องหมายลบ (-) นำหน้าตัวเลข

ถ้าค่าเป็นศูนย์ ไม่ต้องแสดงผล

ได้ข้อมูลที่เป็น Data Labels ของตัวเลขที่เป็นลบแล้ว ^__^

จากนั้นให้เปลี่ยน Data Labels ที่สร้างขึ้นเมื่อกี๊ให้แสดงเฉพาะค่าที่เป็นลบ โดยคลิกขวาที่ Data Labels/ Format Data Labels

คลิกเลือก Value From Cells แล้วเลือกครอบข้อมูลที่ต้องการแสดงผล (จากภาพคือ G2:G21)

2_9.png

Data Labels จะแสดงตัวเลข 2 ชุด คือ Value From Cells และ Value ซึ่งตอนนี้เราไม่ต้องการ Value แล้ว ให้คลิกยกเลิกการเลือก Value

2_10.png

จากนั้นก็เปลี่ยนกราฟเส้นประให้ไม่มีเส้น

“มันมีกราฟหลายเส้น คลิกไม่โดนอ่ะครับพี่” ตั้มร้อง

ถ้าคลิกกราฟไม่โดน ให้คลิกส่วนใดก็ได้ของกราฟก่อน (คลิก Chart Area) ก็ได้ จากนั้นไปที่ Format/ คลิกเลือกส่วนประกอบของกราฟที่ต้องการจาก dropdown ด้านซ้ายบน

2_11.png

ปรับให้ไม่มีเส้นโดยคลิก (ในริบเบิน Format) Shape Outline/ No Outline

2_12.png

ฮัดช่า!!

3_1.png

ในแง่ของเทคนิค กราฟนี้ถือว่าเสร็จแล้ว แต่ในแง่ของรีพอร์ต กราฟนี้ยังไม่เสร็จ

ทำไมน่ะหรือครับ?

ขออธิบายอย่างนี้ละกัน ลองนึกภาพว่าคุณไม่เคยเห็นข้อมูลมาก่อน ลูกน้องของคุณเก็บข้อมูลและสรุปผลเป็นกราฟนี้ในรีพอร์ต แว่บแรกที่เห็นกราฟ คุณจะคิดว่าอะไรครับ?

….

ความคิดแรกที่แว่บเข้ามาคือ “จะให้ดูอะไร?”

เราไม่รู้จะดูอะไรเพราะกราฟนี้ไม่มีจุดโฟกัส !!

คนอ่านไม่ได้ดูข้อมูลมาก่อน เห็นแต่กราฟ จึงไม่รู้ว่าคนทำรีพอร์ตต้องการสื่ออะไร?

แล้วจะทำยังไงน่ะหรือครับ?

ถ้าผมนำเสนอกราฟนี้ ผมอาจชี้ประเด็นว่าในช่วงวันที่ 4 – 8 พฤษภา เกิดความผิดพลาดบางอย่างทำให้ยอด Actual น้อยกว่า Target ที่ตั้งเอาไว้

โดยปรับกราฟแค่นิดเดียวแบบนี้ครับ

3_2.png

ใช่ครับ ผมแค่ปรับฟอนต์ให้เป็นตัวหนาและปรับให้ใหญ่ขึ้นเท่านั้นเอง

หรือถ้าทำให้เด่นขึ้น ก็อาจไฮไลต์ช่วงเวลาที่มีปัญหาแบบนี้ก็ได้

3_3

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

3_4.png

เห็นไหมครับว่าการมีจุดโฟกัส ทำให้กราฟอ่านง่ายขึ้นเยอะมาก ^__^

จุดโฟกัสที่ดีก็คือประเด็นที่ต้องการสื่อนั่นเอง ประเด็นที่ต้องการสื่อมีผลต่อการเลือกรูปแบบกราฟ

กราฟจะดีหรือไม่ดี ไม่ได้อยู่ที่เทคนิค แต่อยู่ที่ว่ากราฟนั้นสื่อความหมายให้ผู้ฟังเข้าใจหรือไม่

ต่อให้เป็นกราฟที่ไฮโซ เทคนิคตระการตาดาวล้านดวง แต่ถ้าไม่สื่อความหมาย กราฟไฮโซนั้นก็ไม่มีประโยชน์

ถึงเป็นกราฟเบๆ ใช้เทคนิคบ้านๆ แต่ถ้าผู้ฟังเข้าใจสิ่งที่ต้องการสื่อ กราฟเบๆบ้านๆนั่นก็เพียงพอแล้ว

จริงไหมครับ ^__^

 

สำหรับใครที่สนใจไฟล์ตัวอย่างของบทความนี้ สามารถดาวน์โหลดเพื่อศึกษาได้เลยครับ

ShowVarianceBetweenLineChart_180525

.

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

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