เปลี่ยนสีกราฟเส้นใน Power BI ตามค่า โดยไม่ต้องเขียน DAX

PanaEk Warawit
3 min readMay 24, 2021

--

เทคนิคในการเปลี่ยนสีกราฟเส้น ด้วย Conditional Formatting โดยไม่ต้องเขียน DAX (แบบขี้โกงหน่อยๆ)

ไปเจอคำถามในกลุ่ม Thai Power BI User Group มาถามว่าถ้าอยากเปลี่ยนสีกราฟเส้นตามค่า เช่น ถ้าถึงเป้าให้เป็นสีเขียว ต่ำกว่าเป้าให้เป็นสีแดง ก็มีคนตอบว่าทำได้ถ้าเขียน DAX

ผมเองก็ไม่เคยทำ แต่รู้ว่า Power BI สามารถทำ Conditional Formatting ได้ นั่นคือการปรับเปลี่ยนการแสดงผล ตามเงื่อนไขที่กำหนดไว้ มันน่าจะทำได้โดยไม่ต้องใช้ DAX นะ

แต่พอลองทำดูก็พบว่า ในกราฟเส้น เครื่องหมายฟังก์ชันที่ให้ทำ conditional formatting มันไม่แสดง ทำไม่ได้จริงๆ แฮะ ลองเล่นไปเล่นมาก็ได้ผลออกมาแบบนี้ ไม่ได้ตอบโจทย์ 100% จริงๆ ต้องบอกว่าขี้โกงหน่อยๆ ด้วย แอบเปลี่ยนโจทย์ คือเปลี่ยนสี marker แทนแต่แลกกับการไม่ต้องเขียน DAX บางคนก็อาจจะยอมรับผลแบบนี้ได้

ใครที่เคยทำหรือรู้เรื่อง conditional formatting บน Data Color อยู่ก่อนแล้ว ทริกมีนิดเดียวเท่านั้นครับ คือสร้างกราฟแท่งก่อน ปรับ conditional formatting ให้เรียบร้อย เสร็จแล้วค่อยเปลี่ยนชนิดของ Visual มาเป็นกราฟเส้น เท่านี้เอง ค่า conditional formatting มันจะตามมาด้วย (แต่มาปรับในกราฟเส้นไม่ได้นะครับ ถ้าจะปรับต้องเปลี่ยนกลับไปเป็นกราฟแท่งก่อน)

จบแล้วครับ ใครเป็นอยู่แล้วก็เลิกอ่านได้ ส่วนใครยังไม่เป็นเลยก็อ่านต่อ เดี๋ยวเล่าอย่างย่อๆ ให้ฟัง

สำหรับมือใหม่

ส่วนนี้จะเป็นสำหรับมือใหม่นะครับ ใครอยากลองทำตามก็ให้โหลดไฟล์ตัวอย่าง Sample Sales and Marketing PBIX มาลองเล่นดูได้

ได้ไฟล์มาก็เพิ่มหน้ารายงานใหม่ แล้วสร้าง visual แบบกราฟแท่ง โดยให้คอลัมน์ Year ในตาราง Date เป็น Axis ส่วน Values เลือก Total Units ใน SalesFact

แล้วก็ไปที่ Format Pane ที่เป็นรูปลูกกลิ้งทาสี ขยายส่วนที่เป็น Data colors ออกมา

ตรงข้างๆ Default color จะเห็นปุ่ม fx เล็กๆ นั่นแหละครับ คือที่ทำ conditional formatting ตอนนี้ถ้าลองเปลี่ยนชนิดของ visual ไปเป็น Line Chart หรือ Area chart ปุ่ม fx ตัวนี้จะหายไป

กลับมาที่ bar chart ใหม่นะครับ พอคลิ้กที่ปุ่ม fx แล้วจะเป็นการเปิดหน้าต่างที่ให้เราเลือกรูปแบบของ conditional formatting ได้ มีรูปแบบให้เลือกปรับแต่งได้หลายแบบ ต้องทดลองใช้และศึกษาดูครับ เล่าตอนนี้เดี๋ยวจะยาวไป ผมเลือกแบบง่ายๆ คือกำหนดเป็นแบบ Rules คือให้เปลี่ยนสีข้อมูล (ในที่นี้คือสีของแท่งกราฟ) โดยอิงตามค่าของฟิลด์ Total Units ว่าถ้ามากกว่า 80,000 หน่วย (อันนี้ผมตั้งเอาเอง) ไปจนถึง 100% ให้แสดงเป็นสีเขียว ถ้าต่ำกว่านั้นก็ให้เป็นสีแดง

พอเสร็จแล้วก็ turn on data label เสียหน่อย ก็จะได้หน้าตาแบบนี้ (ถ้าอยากให้แสดง data label บนทุกแท่ง ให้ไปเลือก Label Density เป็น 100% นะครับ)

เสร็จแล้วก็เปลี่ยนชนิดของ Visual ไปเป็น Line chart ก็จะได้หน้าตาประมาณนี้ครับ

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

คนอื่นเขาทำอย่างไรกันบ้าง

ลองค้นๆ ดูก็มีสองสามวิธีที่ใช้กันอยู่นะครับ

ก็หวังว่าจะเป็นประโยชน์บ้างนะครับ สำหรับคนที่ไม่อยากเขียน DAX เพราะกลัวความยุ่งยากในการ maintenance code วิธีการนี้ก็อาจจะเป็นทางเลือกอย่างหนึ่งได้ครับ

Originally published at http://thaipowerbiusergroup.wordpress.com on May 24, 2021.

--

--

No responses yet