ลองมาเดากันไหมครับว่า 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 แล้ว สูตรนี้แทบเป็นไปไม่ได้

แต่… ต้องทำ!

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

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

Unstructured วิธีคิดไร้กระบวนท่า” คือชื่อที่อยู่บนหน้าปก