ลองมาเดากันไหมครับว่า Excel เขียนสูตรได้กี่ภาษา?

ติ๊กต็อก ติ๊กต็อก ..

แวบแรกน่าจะนึกถึง 2 ภาษาคือ Excel Function กับ VBA
แต่แท้จริงแล้วมี 5 นั่นคือ

  1. Excel Function
  2. VBA
  3. M Code
  4. DAX
  5. MDX

แต่ละภาษาเป็นยังไง มาดูกันเลย

“อาจารย์ เชิญทางนี้หน่อยค่ะ” คุณป้อมยกมือขึ้นขณะผมเดินดูลูกศิษย์
“คุณป้อมมีอะไรหรือครับ?”
“คือเมื่อกี๊ป้อมพิมพ์สูตร DAX แล้วจู่ ๆ มันก็แฮงก์ค่ะ”
“แฮงก์ยังไงครับ?”
“แฮงก์แบบนี้ค่ะ”
แล้วคุณป้อมก็โชว์หน้าจอ Power BI Desktop

“เฮ้ย!” ผมร้อง
“กราฟที่สร้างไว้ พังหมดเลยค่ะ”

ผมตื่นขึ้นมาเช็คตัวเลขก่อนนาฬิกาปลุกร้อง

ตอนเที่ยงคืนเราเพิ่งปล่อยโปรโมชันความหวัง ผ่านมาสี่ชั่วโมงแล้วตัวเลขน่าจะพุ่งทะยาน ถ้าไม่พุ่งบริษัทป่นปี้แน่นอน เพราะทุ่มหมดหน้าตักที่มี

ผมเปิดแอป Power BI ด้วยใจระทึก คลิกไปที่แดชบอร์ด
ตัวเลขที่แสดงคือ 0 !

“เฮ้ย!” ผมสบถเสียงดังจนภรรยาที่นอนข้าง ๆ สะดุ้ง

“เมิงเคยโดนลูกศิษย์ลองภูมิไหม?” นัทถามกลางวงสนทนาเพื่อนเก่า
“เช่นยังไง?” ผมถามกลับ
“เช่น ถามคำถามยาก ๆ ลองเชิงว่าเมิงรู้จริงหรือเปล่า”
คำถามนัททำให้ผมนึกถึงเหตุการณ์นึง …

ณ ออฟฟิศย่านรัชดา
“อาจารย์ นี่น้องเอกซ์ค่ะ น้องเอกซ์เป็นผู้ดูแล Power BI ของบริษัท มาเข้าร่วมการอบรมด้วย” พิม ทีมงานเอชอาร์กล่าวแนะนำ
“สวัสดีครับคุณเอกซ์” ผมส่งยิ้ม
“สวัสดีครับ” เอกซ์ยิ้มทักทายกลับ
“คอร์สนี้สอนตั้งแต่พื้นฐานการใช้ Power BI เกรงว่าคุณเอกซ์น่าจะเคยผ่านมาหมดแล้ว ถ้าผมสอนอะไรผิดไป คุณเอกซ์แนะนำได้เลยนะครับ”
“โอ.. ไม่หรอกครับ ผมเองเพิ่งศึกษา Power BI ไม่กี่เดือน ถือว่ามาปรับพื้นฐานด้วยครับ”
“ด้วยความยินดีครับ”
ผมตอบยิ้ม ๆ

“อยากสร้างรีพอร์ตแสดง Top 5 สินค้าขายดี และแสดงสินค้าที่เหลือเป็น Others ต้องทำยังไงคะ?”

รีพอร์ตที่ว่าหน้าตาประมาณนี้ครับ

รีพอร์ตนี้สร้างไม่ยากถ้าใช้ Excel
แต่สร้างยากมากถ้าใช้ Power BI

ทำไม?

เพราะ Power BI ไม่สามารถเพิ่มบรรทัด (Row) ที่ไม่มีในข้อมูล
ใช่ครับ ผมหมายถึงบรรทัดที่เป็น Others

รายชื่อสินค้า 5 อันดับแรกสามารถดึงจากคอลัมน์ชื่อสินค้าได้ แต่ Others ไม่ใช่ชื่อสินค้า
ถ้าสินค้ามี 100 ตัว Others คือผลรวมของ 95 ตัวที่เหลือ

ในทางปฏิบัติอาจมี slicer เพิ่มเติมเงื่อนไขอื่น เช่น ปี ไตรมาส ประเภทสินค้า ยิ่งเพิ่มความซับซ้อน
ในแง่ของ DAX แล้ว สูตรนี้แทบเป็นไปไม่ได้

แต่… ต้องทำ!

แล้วจะทำยังไง?

“อยากแสดงวันที่ปัจจุบันเป็นภาษาไทยใน Power BI ต้องทำยังไงคะ?”
“ตอนนี้ใช้ฟังก์ชัน TODAY() บางครั้งได้ผลลัพธ์เป็นภาษาไทย บางครั้งได้ผลลัพธ์เป็นภาษาอังกฤษ ควรปรับยังไงดีคะ?”

คำถามนี้สะกิด “ต่อมอยากรู้” ของผมอย่างจัง จนต้องเปิดคอมพ์ขึ้นมาทดลองทันที
ทดลองแล้วเป็นไงน่ะหรือครับ?
ขอ 2 นาทีได้ไหม อยากเล่าให้ฟัง ^__^

คุณทราบไหมครับว่า โจทย์ข้อนึงแก้ปัญหาด้วย Excel ได้อย่างน้อย 3 วิธี !

วิธีอะไรบ้างน่ะหรือครับ?

1 เขียนสูตรปกติ
2 Power Query
3 Power Pivot & DAX

ยังนึกภาพไม่ออกใช่ไหมครับ?
ไม่เป็นไร คลิปนี้จะทำให้คุณเห็นภาพของทั้ง 3 วิธีได้อย่างชัดเจน ^__^

(จริงๆต้องใช้คำว่า 4 วิธีด้วยซ้ำไป เพราะการเขียนสูตรทำได้ 2 แบบคือ AGGREGATE, LARGE)

“Power Pivot ต่างกับ Pivot Table ยังไงครับ?” จู่ ๆ พี่มนต์ชัยก็ยกมือถาม

นักเรียนหลายคนในห้องพยักหน้าหงึก ๆ คล้ายส่งสัญญาณว่าเห็นด้วย
ดูเผิน ๆ นี่คือคำถามเบสิก แต่จริง ๆ แล้วตอบยากมาก

“เป็นคำถามที่ดีครับ” ผมตอบพลางส่งยิ้ม ข้างในลอบหลั่งเหงื่อเย็นเยียบ ในหัวประมวลผลอย่างเร่งร้อนเพื่อหาคำตอบ คล้ายหงส์ที่ลอยอยู่บนผิวน้ำอย่างงามสง่า แต่ขาขยับเป็นระวิงอยู่ใต้น้ำ

แล้วผมตอบพี่มนต์ชัยว่าไงน่ะหรือ?
ขอเล่าให้ฟังผ่านบทความนี้ครับ ^__^

ใครที่ชอบ Power Pivot หรือชอบสูตร DAX แนะนำให้ดูคลิปนี้เลยครับ

เป็นคลิปที่ผมดูแล้วชอบมาก ชอบจนอยากบอกต่อ ดูจบแล้วก็ดูซ้ำอีก

ขอเล่าให้ฟังย่อๆเป็นการเรียกน้ำย่อยนิดนึงละกัน ^^

คลิปนี้สอนเทคนิคการคำนวณยอดขายที่เปลี่ยนแปลงเมื่อเทียบกับปีที่แล้ว แสดงข้อมูลทั้งแบบรายเดือนและรายปี

ฟังเผินๆเหมือนจะง่าย แต่ขอบอกว่ายากมากครับ

“Excel สร้าง Combination ของ 2 ตารางได้ไหมครับ?” ตั้มถามผมในเช้าวันหนึ่ง

“ยังไงเหรอตั้ม?” ผมถามกลับด้วยความงงงวย

“คืออย่างนี้ครับพี่ สมมติมีตาราง Cost Center แสดงข้อมูล 3 แถว ตาราง GL แสดงข้อมูล 4 แถว ผมอยากสร้างตารางใหม่ที่แสดงการจับคู่ของ Cost Center และ GL ทั้งหมด 12 แถวน่ะครับ”

“ตอนนี้ใช้วิธีถึก เหนื่อยมากเลยพี่” 

“ใช้ VBA เขียนคำสั่งวนลูปก็ได้นี่” ผมตอบ

“ผมใช้ VBA ไม่ค่อยเป็นน่ะครับ มีวิธีอื่นไหมครับ?” ตั้มถาม

“ตอนนี้ใช้ Excel เวอร์ชันอะไร?” ผมถามกลับ

“Excel 2016 ครับพี่”

“ถ้างั้นมีวิธีล่ะ สองนาทีเสร็จ ผมตอบ

“จริงดิพี่! ทำไงอ่ะ?” ตั้มร้องด้วยความตื่นเต้น

บทความนี้คือวิธีที่ผมตอบตั้มครับ ^__^