ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 1

ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query

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

Q1 : Power Query คืออะไร?

ตอบ : คือเครื่องมือที่ใช้ดึงข้อมูลจากแหล่งต่างๆ มา (Get Data) และสามารถ “ดัดแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสม” ได้ (Transform Data) เพื่อส่งข้อมูลไปทำงานต่ออีกที (Load/Apply) เช่น ส่งเข้าไปยัง PivotTable (กรณีตารางเดียว) หรือส่งเข้า Data Model (กรณีข้อมูลมีหลายตารางที่มีความสัมพันธ์กัน) เป็นต้น

ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 2

ซึ่งบอกได้เลยว่ามันเหมาะกับการใช้เป็นเครื่องมือที่ใช้งานคู่กับ PivotTable เป็นอย่างมาก นั่นคือ ใช้ Power Query ก่อน แล้วค่อย Pivot ต่อนั่นเอง

Q2 : Power Query มีให้ใช้ได้ที่ไหน ต้องโหลดโปรแกรมอะไรเพิ่มมั้ย?

ตอบ : Power Query เป็นเครื่องมือที่ฝังอยู่ทั้งในโปรแกรม Excel (2016 ขึ้นไป) และ Power BI เรียบร้อยแล้ว ไม่ต้องไปโหลดอะไรมาเพิ่มเลย (ถ้า Excel 2013 ต้องไปโหลด Add in เพิ่ม) ซึ่งมันก็เป็นเครื่องมือที่มีอยู่ใน Ribbon ของโปรแกรมในส่วนของ Data -> Get & Transform Data คล้ายกับเครื่องมืออื่นๆ ใน Excel ที่เพื่อนๆ เคยใช้นั่นแหละ อย่างเช่น Text to Column, Advanced Filter, Find & Replace นั่นแหละ แต่ว่าตัว Power Query นั้นมีความสามารถเจ๋งกว่าเครื่องมือเหล่านั้นทั้งหมด

ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 3

และไฟล์ที่ใช้ Power Query ไปแล้ว เวลา Save มันก็คือไฟล์ Excel ปกตินี่แหละ ไม่ได้มีนามสกุลอะไรพิศดารแบบเดียวกับไฟล์ที่มี VBA นะครับ

คนที่ทำงานข้อมูลใน Excel มาถึงระดับนึง ก็จะมีแนวโน้มสูงที่จะต้องไปต่อใน Power BI ในอนาคตอยู่ดี ดังนั้นการที่ Power Query มีทั้งใน Excel และ Power BI เรียกได้ว่าถ้าเรียนรู้ Power Query ได้แล้ว เรียนครั้งเดียวใช้ได้ทั้ง 2 โปรแกรมเลย คุ้มสุดๆ ครับ

อย่างไรก็ตาม สำหรับ Spec Computer ที่แนะนำ ผมขอแนะนำให้มี Ram อย่างน้อย 8GB นะครับ แต่ถ้าให้ดีควรมี Ram 16GB ขึ้นไป จึงจะใช้เครื่องมือพวก Power Query / Power BI ได้ดีครับ เนื่องจากโปรแกรมพวกนี้มีการคิดหลายๆ อย่างเอาไว้ใน Ram เยอะมาก

Q3 : รูปแบบข้อมูลที่เหมาะสมคืออะไร?

ตอบ : จุดประสงค์ของ Power Query คือการดัดแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสม ซึ่งมีลักษณะเป็นตาราง Database นั่นคือ

  • มีหัวตารางบรรทัดเดียว
  • ข้อมูลเรื่องเดียวกันอยู่ในคอลัมน์เดียวกัน (เช่น เลขเดือน ให้อยู่ในคอลัมน์เดือนอันเดียว ไม่ใช่แยกหลายคอลัมน์ไปด้านขวา)
  • ข้อมูลในตารางไม่เว้นว่างละไว้ในฐานที่เข้าใจ (การว่างไว้ เช่น ใส่ข้อมูลแค่ตัวบนแล้วปล่อยเว้นว่างหรือ merge ซึ่งไม่ควรทำ)
  • มีแต่ข้อมูลจริงๆ ไม่ต้องมีบรรทัดสรุป (เพราะเดี๋ยวเราไปสรุปอีกทีใน Pivot ได้อยู่แล้ว ถ้ามี subtotal ก็จะซ้ำซ้อน)
  • ถ้ามีข้อมูลหลายตาราง แต่เป็นข้อมูลแบบเดียวกัน (อาจจะคนละสิ้นค้า คนละช่วงเวลา) ก็ต้องเอามารวมกันเป็นตารางเดียวก่อน

ถ้านึกภาพไม่ออก สามารถไปดูตัวอย่าง การออกแบบตารางบันทึกข้อมูลที่ดีใน Excel (ลักษณะของ Database ที่ถูกต้อง) ได้ที่นี่

ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 4

Q4 : ถ้าข้อมูลไม่ใช่ Database แล้วมีข้อเสียยังไง?

ตอบ : ถ้าเราปล่อยให้ข้อมูลมีหน้าตาที่ไม่ ok เราจะไม่สามารถนำไปสรุปต่อด้วย Pivot Table/Pivot Chart ได้ หรือถ้าทำได้ก็จะยากและมีปัญหาหลายอย่างตามมา ซึ่งสาเหตุที่หลายคนไม่ยอมใช้ PivotTable (ทั้งๆ ที่มันเป็นเครื่องมือที่เจ๋งและใช้ง่ายมาก) ก็อาจเป็นเพราะลักษณะของข้อมูลต้นทางยังไม่ถูกต้อง มันก็เลย Pivot ไม่ได้นั่นเอง!

อย่างเช่นรูปตัวอย่างในตารางฝั่งซ้ายมือของคำถามข้อข้างบน ถ้าเราจะ Pivot เพื่อหายอดขายของสินค้าหลายๆ ตัวก็จะพบว่าทำได้ลำบากขึ้นแล้ว เพราะจ้องลาก Field ลงมา 3 รอบ แถมหาผลรวมก็ยาก แต่ถ้าเป็นแบบตารางขวาจะง่ายกว่าเยอะมาก เป็นต้น

แปลว่า ถ้าข้อมูลดั้งเดิมของเรายังไม่ใช่หน้าตาแบบของ Database เราสามารถใช้ Power Query ดัดแปลงมันก่อนจะส่งให้ Pivot / Data Model ได้

Q5 : Power Query ดัดแปลงหน้าตาของข้อมูลต้นฉบับของเราด้วยมั้ย?

ตอบ : หลักการทำงานของ Power Query คือการกำหนด “วิธีการดัดแปลงข้อมูล” (Applied Steps) ที่จะทำกับข้อมูลที่เรากำหนด โดยที่มันไม่ได้ไปแก้ไขตัวไฟล์ต้นฉบับของเราจริงๆ แต่มันแค่ดึงข้อมูลมาทำตาม Step ที่เราต้องการ จากนั้นค่อยส่งผลลัพธ์ออกมายัง Excel/Power BI อีกที ซึ่งทำให้มั่นใจได้ว่าไฟล์ต้นฉบับยังคงปลอดภัย

และที่สำคัญ Step การดัดแปลงข้อมูลที่เราออกแบบไว้ สามารถสั่งให้ทำซ้ำได้เพียงแค่การกดปุ่ม Refresh เพียงปุ่มเดียว แปลว่าหากข้อมูลต้นฉบับมีการเปลี่ยนแปลง เราสามารถอัปเดทผลลัพธ์ที่อยู่ใน Excel/Power BI ได้แค่กด Refresh ทีเดียวจบ ซึ่งจะข่วยให้การทำรายงาน Routine ของเราเร็วขึ้นมากๆๆๆๆๆ

Q6 : นอกจากดัดแปลงหน้าตาข้อมูลแล้ว มันทำอะไรได้อีกมั้ย?

ตอบ : นอกจากหน้าที่หลักคือการดัดแปลงหน้าตาข้อมูลแล้ว มันยังสามารถทำงานได้อีกมากมาย เช่น

  • สามารถ Sort/Filter ข้อมูลได้ ลบคอลัมน์ที่ไม่ต้องการได้
  • แทนที่ข้อความนึงด้วยอีกอันได้
  • ดึงบางส่วนของข้อความออกมาได้
  • split คอลัมน์ออกเป็นหลายๆ อันได้
  • รวมหลายคอลัมน์เป็นคอลัมน์เดียวได้
  • เพิ่มคอลัมน์ใหม่ให้มีข้อมูลที่เราต้องการได้ (สามารถเขียนสูตรได้ แต่จะเป็นสูตรคนละแบบกับ Excel)
  • รวมข้อมูลจากหลายๆชีท หลายไฟล์เข้าด้วยกันได้ (มีทั้งง่ายและยาก)

เรียกได้ว่า ทำได้ทุกอย่างถ้าเป็น Step ของการจัดเตรียมข้อมูลก่อนนำไปสรุปด้วย Pivot อีกที จนตัวผมเองใช้ Power Query แทนสูตร Excel อย่างพวก VLOOKUP, INDEX, MATCH LEFT, MID, SUBSTITUTE ได้ทั้งหมด และยังใช้แทนเครื่องมือที่ไม่อัตโนมัติอย่าง Text to column, Find & Replace, Sort/Filter ได้หมดเลย

Q7 : Power Query ใช้ยากมั้ย? ต้องเรียนรู้สูตรเพิ่มหรือไม่?

ตอบ : เราสามารถใช้ Power Query แบบง่ายๆ ผ่านเครื่องมือสำเร็จรูปที่มีอยู่ในตัวโปรแกรมได้เลย (แค่เอา Mouse คลิ๊กๆ) ซึ่งสามารถรองรับงานทั่วๆ ไปได้ซัก 70-80% แล้ว ซึ่งทุกครั้งที่เรากดเครื่องมือเหล่านี้มันจะบันทึกเป็นสูตรให้เราโดยอัตโนมัติในส่วนของ Applied Steps (คล้าย Record Macro) โดยที่เราไม่ต้องมาเรียนรู้ code ที่อยู่เบื้องหลังมันเลย

ซึ่งถ้าเป็นคนที่มีความรู้และประสบการณ์การจัดเตรียมดัดแปลงข้อมูลใน Excel มาแล้ว เช่น ใช้ VLOOKUP, LEFT, SUBSTITUTE, IF อะไรมาเป็นแล้ว ผมเชื่อว่าถ้ามาลองหัดใช้ Power Query ไม่เกิน 1 week น่าจะสามารถใช้เป็นในระดับที่ทดแทนสูตรของงานเดิมได้เลยครับ

แต่ถ้าเป็นคนที่พื้น Excel ยังน้อย หรือ Logic ไม่ค่อยแม่น อาจจะงงว่าจะดัดแปลงข้อมูลไปทำไม หรือควรทำอะไรก่อนหลังดี ผมแนะนำว่าให้ไปฝึกพื้นฐาน Excel ให้ดีขึ้นก่อน ให้มีประสบการณ์ทำงานเยอะจนเจอปัญหาก่อน แล้วจะได้รู้ว่าเป้าหมายของการใช้ Power Query คืออะไรกันแน่

ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 5
ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 6
ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 7

อย่างไรก็ตาม แม้ Power Query จะมีเครื่องมือสำเร็จรูปมาให้ แต่ก็มีสถานการณ์ยากๆ ที่เราจำเป็นต้องเรียนรู้และดัดแปลง Code ที่อยู่เบื้องหลังการทำงานของ Power Query ด้วย ซึ่งจะเรียกว่า M Code โดยที่มันเป็นภาษาเชิงฟังก์ชันที่ไม่เหมือนกับสูตรของ Excel แม้แต่น้อย (และมีฟังก์ชันให้ใช้มากกว่าที่เครื่องมือสำเร็จรูปมีให้อีกเยอะมากๆๆ) แต่ถ้าเข้าใจมัน เราจะสามารถทำเรื่องเจ๋งๆ ได้มากมาย รวมถึงสามารถเขียนฟังก์ชันขึ้นมาใช้เองก็ได้ครับ

Q8 : เริ่มอยากลองใช้ Power Query แล้วสิ มีคลิปแนะนำมั้ย?

ตอบ : ลองดูคลิปที่ผมทำไว้อันนี้ได้ครับ น่าจะพอให้สามารถเริ่มต้นได้ (ดูนาทีที่ 11:30 เป็นต้นไปก็ได้ครับ ช่วงแรกเป็นการเกริ่นนำ)

ส่วนอันนี้เป็นลักษณะการดัดแปลงข้อมูลที่ใช้บ่อยในชีวิตจริง 10 แบบ ซึ่งน่าจะช่วยให้เห็นภาพมากขึ้นว่ามันทำอะไรได้

หรือถ้าดูคลิปฝรั่งก็ได้ อันนี้ก็อธิบายมือใหม่ได้ดีมากๆ ครับ

Q9 : สรุปแล้ว ใครเหมาะกับการใช้ Power Query บ้าง?

ตอบ : สถานการณ์ที่เหมาะกับการใช้ Power Query จะมีประมาณนี้

  • ข้อมูลไม่อยู่ในรูปแบบ Database
  • ข้อมูลกระจายอยู่หลายชีท หลายไฟล์ ต้องการเอามารวมกัน
  • ยังมีคอลัมน์ที่ต้องการไม่ครบ ต้องเพิ่มคอลัมน์ด้วยการคำนวณบางอย่างจากข้อมูลที่มีอยู่
  • ต้องการใช้ Power BI ยังไงก็ต้องใช้ Power Query ให้เป็นครับ (ไม่งั้นเอาข้อมูลเข้า Power BI ไม่ได้ 555)

ส่วนคนที่เหมาะกับการใช้ Power Query คือลักษณะประมาณนี้ครับ

  • คนที่มีความรู้และประสบการณ์การใช้ Excel พื้นฐาน เช่น VLOOKUP, IF, LEFT, PivotTable เป็นแล้ว และอยากพัฒนาทักษะต่อ
  • คนที่ทำงานใน Excel แล้วอยากจะใช้ Pivot Table แต่ใช้ไม่ได้ หรือใช้ได้ไม่ดี เพราะหน้าตาข้อมูลยังไม่ใช่ Database
  • คนที่ต้องทำรายงาน Routine ไม่ว่าจะ Monthly, Weekly, Daily แล้วอยากให้งานมันอัตโนมัติมากขึ้น
  • คนที่เขียนสูตร Excel เยอะจนทำงานช้า ถ้าเปลี่ยนมาใช้ Power Query แล้วไฟล์จะไม่หน่วง เพราะว่าสามารถเอาข้อมูลดิบไว้ที่ไฟล์ข้างนอกได้ ไม่จำเป็นต้องเอามาแปะใน Excel และผลลัพธ์ที่ออกมาไม่ได้ค้างสูตรไว้ (แต่ยัง Refresh ได้อยู่ ซึ่งเจ๋งมากๆ)
  • คนที่จะใช้ Power BI ด้วยเหตุผลที่บอกไปข้างบน

Q10 : อยากรู้อะไรถามมาเลย จะตอบให้ครับ

คำถามสุดท้าย อันนี้ผมอยากให้เพื่อนๆ ที่แวะเข้ามาอ่านบทความนี้เป็นคนถามมากกว่า ซึ่งสามารถ Comment ถามได้ใต้ post นี้เลยนะครับ

อย่าลืมบอกต่อเพื่อนๆ

หวังว่าบทความนี้จะช่วยตอบคำถามและข้อสงสัยที่เพื่อนๆ มีต่อการใช้ Power Query ได้นะครับ ถ้าใครไปลองใช้ Power Query แล้วคิดว่าเครื่องมือนี้มีประโยชน์สามารถบอกต่อให้เพื่อนๆ ของคุณได้รู้จักเครื่องมือเจ๋งๆ อันนี้ได้นะครับ

ผมอยากให้คนใช้งาน Power Query เป็นเยอะๆ เพราะมันเจ๋งมากจริงๆ ครับ แถมถ้าจะไปต่อที่ Power BI ยังไงก็ต้องใช้ ดังนั้นเรียนรู้ไปเลยใน Excel ไม่เสียหายแน่นอน ^^