---
title: "Power Query ตอนที่ 2 : มหากาพย์การใช้งาน Power Query ตั้งแต่ต้นจนจบ"
url: https://www.thepexcel.com/power-query-overview/
type: post
date: 2017-04-17
updated: 2022-05-10
author: Sira Ekabut
categories: ["Highlights : บทความแนะนำ", Power Query]
tags: [database, overview]
---

# Power Query ตอนที่ 2 : มหากาพย์การใช้งาน Power Query ตั้งแต่ต้นจนจบ

> หลังจาก ตอนที่แล้วผมได้แนะนำวิธีการติดตั้ง Power Query ไปแล้ว วันนี้ผมจะมาแนะนำ มหากาพย์การใช้งาน Power Query ตั้งแต่ต้นจนจบให้พวกเราได้รู้จักกันครับ แต่ก่อนจะบอก Steps การทำงานทั้งหมด ผมต้องแนะนำให้พอรู้จักลักษณะการทำงานของ Power Query กันซักหน่อย ว่ามันทำงานประมาณไหน จะได้นึกภาพออก ลักษณะการทำงานของ Power...

หลังจาก [ตอนที่แล้วผมได้แนะนำวิธีการติดตั้ง Power Query ไปแล้ว](https://www.thepexcel.com/install-powerquery/) วันนี้ผมจะมาแนะนำ มหากาพย์การใช้งาน Power Query ตั้งแต่ต้นจนจบให้พวกเราได้รู้จักกันครับ

 

แต่ก่อนจะบอก Steps การทำงานทั้งหมด ผมต้องแนะนำให้พอรู้จักลักษณะการทำงานของ Power Query กันซักหน่อย ว่ามันทำงานประมาณไหน จะได้นึกภาพออก

 

## ลักษณะการทำงานของ Power Query

 ![1](https://www.thepexcel.com/wp-content/uploads/2017/04/overview.png) 

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

 

หรือถ้าจะให้นิยามแบบสั้นๆ ผมขอบอกว่า **Power Query คือ เครื่องมือรวบรวมและดัดแปลงข้อมูล **นั่นเอง

 

ประเด็นที่สำคัญที่สุดเลย คือ มันเก่งมาก แต่ใช้งานไม่ยากเลย! ดังนั้นอย่ารอช้า เรามาเรียนรู้วิธีการใช้งาน Power Query กันเลยดีกว่า!

 

## Steps การใช้งาน Power Query เบื้องต้น

 

จากคำบรรยายลักษณะการทำงานของ Power Query ผมก็ขอแบ่งออกมาเป็นขั้นตอนดังนี้

 

## 1.รวบรวม & เชื่อมต่อข้อมูล

 

สิ่งที่ยุ่งยากที่สุดของ Power Query ก็คือขั้นตอนรวบรวมเชื่อมต่อข้อมูลนี่แหละครับ ยิ่งถ้ามีหลายไฟล์ หลายแหล่งข้อมูลอาจต้องทำการเชื่อมต่อหลายทีหน่อย ดังนั้นขั้นนี้ให้อดทนนิดนึงนะครับ (จริงๆ มีวิธีเชื่อมทั้ง Folder ทีเดียวด้วยแต่ว่ายากเกินไปที่จะสอนตอนนี้ครับ ^^)

 

สมมติผมมีข้อมูลอยู่ 3 ที่ คือ 1. ในไฟล์ Txt 2.ในไฟล์ Excel ที่จะทำ PowerQuery เอง 3.ในไฟล์ Excel อื่น โดยให้[โหลดไฟล์ที่นี่](https://drive.google.com/drive/folders/0B4xG7-sIyJBDQTM5Um1aYzV5Ulk?usp=sharing)

 

ก่อนอื่นให้เปิดไฟล์ที่จะทำ Power Query ซะก่อน (ชื่อไฟล์ PowerQuery-Basic.xlsx)

 

วิธีเชื่อมต่อข้อมูลก็ง่ายมาก ไปที่ Ribbon Power Query แล้วมันจะมีให้เลือกว่าจะเอาข้อมูลจากไหน?

 ![2](https://www.thepexcel.com/wp-content/uploads/2017/04/import-source.png) 

ปกติที่ใช้บ่อยๆ ก็จะมีจาก

 
- **From File** = เอาจากไฟล์อื่น เช่น TXT, CSV, ไฟล์ Excel เอง รวมถึงเอามาทั้ง Folder ได้ด้วย
- **From Database** = เอาจากไฟล์ Access
- **From Table/Range** = เอาจาก Table หรือ Range ที่อยู่ในไฟล์เดียวกันนี้

 

เช่นไฟล์ data1.txt ผมก็ต้องเลือก From File -> TXT/CSV -> เลือกไฟล์ที่ต้องการ

 ![3](https://www.thepexcel.com/wp-content/uploads/2017/04/import-txt.png) 

ซึ่งตรง Load จะมีลูกศรให้เลือกว่า จะ Load เฉยๆ หรือ Load to และปุ่มข้างๆ มีคำว่า Edit ซึ่งแต่ละอันมีความหมายดังนี้

 
- **Load** = จะถูก**สร้างเป็น Table** ในไฟล์ Excel ที่เรากำลังเปิด
- **Load to** = จะมี Option ให้เลือกต่อว่า จะสร้างเป็น Table หรือ จะแค่สร้างการเชื่อมต่อเฉยๆ (Create Connection Only)
- **Edit** = จะสามารถเข้าไปแก้ไขข้อมูลก่อนที่จะดึงข้อมูลมาใช้ เช่น แก้ชื่อตาราง, Sort/Filter, เพิ่มคอลัมน์คำนวณ, และอีกมากมาย… (ซึ่งทั้งหมดนี้เราดึงข้อมูลมาใช้ก่อนแล้ว Edit ทีหลังก็ได้)

 

ในที่นี้ผมขอเลือก Load to แล้วติ๊ก Only Create Connection ดีกว่า ไฟล์จะได้ไม่ใหญ่ด้วย

 ![4](https://www.thepexcel.com/wp-content/uploads/2017/04/Load-to-connection.png) 

เมื่อกด Load ก็จะมีหน้าต่างบอกว่า มีการเชื่อมต่อกับข้อมูล Data1 แล้ว

 ![5](https://www.thepexcel.com/wp-content/uploads/2017/04/query.png) 

ผมทำแบบเดียวกันกับ Data2.xlsx โดยเลือกFrom File -> Excel คราวนี้มันจะบอกว่าเจอข้อมูล 2 ชีท

 

เราสามารถเลือกแบบ Multiple พร้อมกันได้เลย

 ![6](https://www.thepexcel.com/wp-content/uploads/2017/04/import-excel.png) 

ในที่นี้ผม Load to แบบ Only Create Connection เหมือนเดิม จได้ว่ามีการเชื่อมต่อ 3 อันแล้ว

 ![7](https://www.thepexcel.com/wp-content/uploads/2017/04/query2.png) 

สุดท้ายเอาข้อมูลจากไฟล์ตัวเอง สามารถกดปุ่ม From Table/Range ได้ แต่ผมแนะนำว่าถ้ายังไม่ได้เปลี่ยนข้อมูลให้เป็น Table ให้เราทำการแปลงเป็น Table ซะก่อน โดยการคลิ๊กที่ข้อมูลแล้วกด Ctrl+T

 

เดิม

 ![8](https://www.thepexcel.com/wp-content/uploads/2017/04/range.png) 

กด Ctrl+T เพื่อแปลงเป็น Table แล้วตั้งชื่อตามใจชอบ

 ![9](https://www.thepexcel.com/wp-content/uploads/2017/04/table.png) 

จากนั้น ขณะที่เลือก Table อยู่ ให้กดปุ่มที่ Tab Power Query ว่าเราจะเชื่อมต่อข้อมูลกับ Table

 ![10](https://www.thepexcel.com/wp-content/uploads/2017/04/import.png) 

มันจะขึ้นหน้าต่าง Query Editor มาให้โดยอัตโนมัติ (หน้าต่างเดียวกันกับที่เวลาเรากด Edit นั่นแหละ) ในที่นี้ผมจะ Close & Load to เพื่อ Only Create Connection เหมือนเดิม

 ![11](https://www.thepexcel.com/wp-content/uploads/2017/04/close-loadto.png) 

คราวนี้เราก็สร้าง Connection ครบทุกอันแล้ว!!

 ![12](https://www.thepexcel.com/wp-content/uploads/2017/04/query3.png) 

## 2.คัดกรอง & ดัดแปลง

 

ถ้าข้อมูลแต่ละอันไม่ค่อยสมบูรณ์ เช่น มีข้อมูลซ้ำ ข้อมูลขยะ เราสามารถทำการ Edit Query เพื่อคัดกรอง / group ข้อมูลก่อนจะผสมข้อมูลเข้าด้วยกันได้ (ถ้าเราไม่กำจัดการซ้ำก่อน เวลา Map ข้อมูลแล้วมันอาจจทำให้ข้อมูลเบิ้ลเข้าไปอีก)

 

วิธีการทำคือ คลิ๊กขวาที่ Query ที่ต้องการแล้วกด Edit ได้เลย

 ![13](https://www.thepexcel.com/wp-content/uploads/2017/04/Edit-Query2.png) 

แต่ในที่นี้ข้อมูลของผม ok แล้ว เลยไม่ต้องมีการแก้ไขอะไรครับ เราข้ามขั้นตอนนี้ไปได้เลยครับ ^^

 

## 3. ผสมข้อมูล (Combine โดย Merge/Append)

 

ขั้นต่อไปเราจะทำการเชื่อมข้อมูลเข้าด้วยกันแล้ว ซึ่งจะมีให้เลือก 2 โหมด คือ

 
- **Merge** = เอาข้อมูลมา Map กัน แบบเดียวกับ VLOOKUP (เพิ่มคอลัมน์)
- **Append** = เอาข้อมูลหลายตารางมาต่อท้ายกันไปเรื่อยๆ (เพิ่มจำนวนบรรทัด)

 

ในที่นี้ผมจะ Map ข้อมูลจากตารางอ้างอิง เลยต้องใช้การ Merge นั่นเอง ซึ่งพอกดเข้าไปแล้ว มันจะถามว่าจะเอาอะไรมา Merge กับอะไร?

 
- (1) เอาเอาตารางหลัก (data1) ไว้ข้างบน <= คล้ายๆ Lookup_Value ใน VLOOKUP
- (2) ตารางอ้างอิง (Customer Country) ไว้อันล่าง <= คล้ายๆ Table_Array ใน VLOOKUP
- (3) และ (4) เลือกคอลัมน์ที่เป็นตัวเชื่อมกัน
- (5) เลือกวิธีการเชื่อม <= แบบแรก คือ จะเหมือน VLOOKUP นั่นคือ เอาอันบนทุกอัน และเอาอันล่างเท่าที่ Map เจอ

 ![14](https://www.thepexcel.com/wp-content/uploads/2017/04/merge.png) 

หลังจากกด Load จะขึ้นหน้าจอ Query Editor มาให้อีกแล้ว แต่คราวนี้จะเห็นว่ามีคอลัมน์ใหม่ เขียนว่า NewColumn แล้วมีค่าเป็น มาให้ด้วย แปลกดีมั้ย?? ความหมายมันคือเป็นคอลัมน์ที่มาจากการ Map ซึ่งเราต้องทำการกดตาม Step ข้างล่าง เพื่อเลือกว่าจะเอาคอลัมน์ไหนมาแสดงบ้าง?

 
- (1) แตกคอลัมน์
- (2) เลือกคอลัมน์ที่ต้องการแสดง
- (3) ถ้าจะให้เอาชื่อคอลัมน์แบบไม่มี prefix ให้ติ๊กออก

 ![15](https://www.thepexcel.com/wp-content/uploads/2017/04/merge-step2.png) 

พอกด Ok ก็จะเห็นว่ามีคอลัมน์เพิ่มมาแล้ว และจะเห็นว่ามี Applied Step ด้านขวา เพิ่มมาด้วย

 ![16](https://www.thepexcel.com/wp-content/uploads/2017/04/merge-step3.png) 

จากนั้นให้เราทำการ Merge กับตารางที่เหลือให้ครบ โดยไปที่คำสั่ง Merge Query

 ![17](https://www.thepexcel.com/wp-content/uploads/2017/04/merge-query.png) 

แล้วเชื่อมข้อมูลให้ครบ

 ![18](https://www.thepexcel.com/wp-content/uploads/2017/04/merge-product.png) ![19](https://www.thepexcel.com/wp-content/uploads/2017/04/merge-step4.png) 

พอเสร็จแล้วสามารถกดปุ่ม Close & Load ได้เลย คราวนี้เราอยากจะสร้าง Table ผลลัพธ์สุดท้ายแล้ว

 ![20](https://www.thepexcel.com/wp-content/uploads/2017/04/merge-result.png) 

## 4. แก้ไขรายละเอียด / เขียนสูตร / แก้ลำดับการทำงาน

 

สมมติว่า คุณลืมอะไรบางอย่างไป หรือทำอะไรผิด ก็สามารถเข้าไปแก้ Query เดิมได้ โดยคลิ๊กขวาที่ Query ที่ต้องการแล้วกด Edit ได้เลยครับ

 ![21](https://www.thepexcel.com/wp-content/uploads/2017/04/Edit-Query.png) 

เวลากดเข้าไปแล้ว จะสังเกตเห็นข้อมูล และ **Applied Step** ซึ่งคือขั้นตอนที่มันบันทึกไว้ว่ามันทำอะไรกับข้อมูลบ้าง ซึ่งเราสามารถแก้ไข ลบ สลับลำดับ action เหล่านี้ได้

 ![22](https://www.thepexcel.com/wp-content/uploads/2017/04/applied-step.png) 

เวลาเราทำ action อะไรเพิ่มเติมมันก็จะบันทึกต่อไปเรื่อยๆ (จริงๆ เราสามารถแทรก Step การทำงานก็ได้ โดยไปเลือก Step ที่ต้องการจะแทรก แล้วค่อยทำ action)

 

## *Tips : ตัวอย่าง Action ที่ทำบ่อยๆ*

 

### เพิ่มคอลัมน์ใหม่

 

ผมจะเพิ่มคอลัมน์ยอดขาย ก็ไปกดที่ Add Column -> Add Custom Column

 

แล้วตั้งชื่อ Field ใหม่ จากนั้นพิมพ์สูตรที่ต้องการลงไป (คลิํกที่ชื่อ Field ที่มีให้เลือกได้ คล้ายๆ กับ Calculated Field ของ PivotTable)

 

**Tips :** จริงๆ แล้วสูตรที่เขียนใน Custom Column นี้เป็น **ภาษาของ Power Query เอง เรียกว่า Power Query Formula Language หรือ ภาษา M (M Language) **ซึ่งถ้าจะเอาให้ลึกซึ้งก็ต้องศึกษากันขนานใหญ่เลย แต่ไม่ต้องห่วงไป เราสามารถเขียนสูตรง่ายๆ อย่างบวก ลบ คูณ หาร ได้เช่นเดียวกับ Excel อยู่แล้ว

 

**Tips2** : นอกจากที่ Custom Column แล้ว ภาษา M ยังสามารถเขียนอยู่ในตัวตาราง Query ได้ด้วยนะ แต่ยาก เอาไว้ทีหลังแล้วกันครับ ^^”

 ![23](https://www.thepexcel.com/wp-content/uploads/2017/04/add-custom-column.png) 

มันก็จะมี Step เพิ่มขึ้นมา

 ![24](https://www.thepexcel.com/wp-content/uploads/2017/04/applied-step2.png) 

### ลบคอลัมน์

 

ผมจะตัดคอลัมน์บางอันทิ้ง ก็เลือกคอลัมน์ที่จะไม่เอา เช่น ราคาต่อชิ้น (ผมไม่ใช้แล้ว) แล้วกดปุ่ม Del บน Keyboard ได้เลย

 ![25](https://www.thepexcel.com/wp-content/uploads/2017/04/applied-step3.png) 

สังเกตว่า คอลัมน์ยอดขาย (=จำนวน*ราคาต่อชิ้น) ที่สร้างขึ้นมาใหม่ ก็ยังใช้งานได้อยู่ แม้ว่าเราจะลบคอลัมน์ ราคาต่อชิ้น ออกไปแล้วก็ตาม

 

### เปลี่ยนชื่อคอลัมน์

 

ให้ดับเบิ้ลคลิ๊กที่ชื่อคอลัมน์ตรงหัวตาราง แล้วแก้ไขได้เลย

 ![26](https://www.thepexcel.com/wp-content/uploads/2017/04/rename.png) 

### เปลี่ยนประเภทข้อมูล

 

คลิ๊กขวาที่คอลัมน์ที่ต้องการ แล้วเลือก Change Type ได้เลย

 ![27](https://www.thepexcel.com/wp-content/uploads/2017/04/changetype2.png) 

ถ้าทำแล้ว Error แสดงว่ามันมองปฏิทินผิดแบบ

 ![28](https://www.thepexcel.com/wp-content/uploads/2017/04/date-error.png) 

ให้ไปที่ Change Type -> Using Locale… แทน แล้วเลือกเป็น Date / English (UK) แล้วกด Enter

 

จะเห็นว่ามันยังคง Error อยู่ เป้นเพราะว่ามัน Error มาตั้งแต่ Step ก่อนหน้า

 ![29](https://www.thepexcel.com/wp-content/uploads/2017/04/date-error2.png) 

ดังนั้นเราต้องลบ Step ก่อนหน้าทิ้งซะ โดย Click ขวาที่ Step ก่อนหน้า แล้วกด Delete

 ![30](https://www.thepexcel.com/wp-content/uploads/2017/04/date-error3.png) 

จะเห็นว่าข้อมูลไม่ Error แล้ว และสามารถ Filter แบบ Date ได้

 

### Filter ข้อมูล

 

จะ Filter ข้อมูลได้ดี จะต้องเปลี่ยนประเภทข้อมูลให้ถูกต้องซะก่อน เช่น ถ้าไม่ใช่วันที่ ก็จะไม่มี Date Filter ให้เลือก เป็นต้น

 ![31](https://www.thepexcel.com/wp-content/uploads/2017/04/date-filter.png) 

### Split Column

 

เราสามารถ Split คอลัมน์ได้ 2 แบบ เช่นเดียวกับเครื่องมือ Text to Column นั่นคือ แบ่งแบบใช้ตัวคั่น (delimiter) กับแบบมีจำนวนอักขระชัดเจน ( number of character)

 ![32](https://www.thepexcel.com/wp-content/uploads/2017/04/split.png) 

แล้วมันจะมี Option ต่ออีก ว่าจะแยกแค่ตัวแรก ตัวหลัง หรือทุกตัว ผมจะแยกคำนำหน้าชื่อ ก็เลยเอาแค่ตัวแรก

 ![33](https://www.thepexcel.com/wp-content/uploads/2017/04/split2.png) 

ถ้าทำทุกอย่างเสร็จหมดแล้ว เราก็กด Close & Load ได้เลยครับ

 

ใครอยากดูเทคนิคต่างๆ ที่ใช้บ่อย[อ่านต่อได้ที่นี่](https://www.thepexcel.com/10-power-query-basic-transform/)

  

> [ปราณคิวรี่ พื้นฐาน 10 รูปแบบ : รวมกระบวนท่า Power Query พื้นฐานที่คุณควรรู้จัก](https://www.thepexcel.com/10-power-query-basic-transform/)

  

## 5. นำไปใช้งานต่อใน Excel

 

ผลลัพธ์ที่ออกมาจากการ Load จะเป็น Table ที่เอาไปใช้งานต่อได้ เช่น เอาไปวิเคราะห์ต่อใน PivotTable

 ![34](https://www.thepexcel.com/wp-content/uploads/2017/04/final.png) 

แต่มันมันเจ๋งคือ **Table นี้ยังคง Link Connection กับข้อมูลต้นทางอยู่** แปลว่าหากข้อมูลต้นทางเปลี่ยนไป เราแค่ Refresh เจ้า Query นี้ และ Refresh PivotTable อีกที รายงานของเราก็จะเสร็จเลยทันที!!

 

## ใครมีคำถาม…

 

อ่านจบแล้ว ใครสงสัยอะไรตรงไหน หรือว่าการทำงานจริงอยากรู้อะไรเป็นพิเศษ สามารถ Comment ถามไว้ในนี้ หรือจะ inbox ถามใน Facebook ก็ได้ครับ ตรงไหนมีคนสงสัยเยอะๆ ผมจะได้อธิบายละเอียดให้อีกทีครับ ^^

 

ใครอ่านแล้วคิดว่ามีประโยชน์ก็อย่าลืมแชร์ให้คนอื่นรู้ด้วยนะครับ ยิ่งคนรู้เยอะเรายิ่งสบายครับ จะได้ช่วยกันลดงานถึกๆ ไปได้นะ ^^

---

_Source: [https://www.thepexcel.com/power-query-overview/](https://www.thepexcel.com/power-query-overview/)_
