---
title: 4 วิธีสร้าง PivotTable จากข้อมูลหลายตาราง
url: https://www.thepexcel.com/pivottable-multiple-data-source-4method/
type: post
date: 2016-06-15
updated: 2020-04-03
author: Sira Ekabut
categories: [Pivot Table]
tags: [pivot, multiple]
---

# 4 วิธีสร้าง PivotTable จากข้อมูลหลายตาราง

รู้หรือไม่ว่าเราสามารถสร้าง PivotTable จากข้อมูลหลายตารางได้! ในบทความนี้เราจะมาดูกันว่าทำยังไง?

 

การทำ PivotTable จากหลายตารางนั้น ทำได้หลายวิธี แต่ละวิธีก็มีข้อดีข้อเสีย-ข้อจำกัดต่างกันดังนี้ครับ มาดูรายละเอียดกันดีกว่า

 

## วิธีที่ 1 : ใช้ Data Model & PowerPivot

 

วิธีนี้เป็น**การสร้าง PivotTable จากข้อมูลหลายตารางที่มีความสัมพันธ์กัน** (เรียกว่า Data Model) ซึ่งเป็น Concept เดียวกับ[โปรแกรม Power BI](https://www.thepexcel.com/what-is-power-bi/) เลยครับ หากใช้วิธีนี้เราก็จะสามารถสร้าง Pivot Table แล้วเลือก Field ข้ามตารางได้ โดยที่ไม่จำเป็นต้องเอาข้อมูลมารวมเป็นตารางเดียวกันเลยด้วยซ้ำ

 

อย่างไรก็ตามวิธีนี้จะไม่สามารถเอาตารางมาต่อแถวกันได้นะครับ

 

นอกจานี้ วิธีนี้ต้องใช้ Excel version 2013 ขึ้นไปครับ และถ้าจะให้ดีควรจะ Enable Add-in Power Pivot ซะก่อนจึงจะใช้งานได้สะดวก ซึ่งทำตามดังนี้

 ![1](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-001-1024x729.png) 

แล้วเลือก PowerPivot Add-in ซะตามรูป

 ![2](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-002.png) 

จากนั้นเราจะต้องเอาตารางแต่ละอัน Add เข้า Data Model ซะก่อน เช่น มีทั้งหมด 3 ตาราง เช่น   
1. ตารางการขาย 2. ตารางรหัสพนักงาน 3. ตารางลูกค้า

 

เราต้องเอาตารางเข้า Data Model โดยเลือกข้อมูล แล้วแปลงแต่ละตารางให้เป็น Table โดย Insert -> Table ซะก่อน แล้วค่อยกด Add To Data Model

 ![3](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-003-1024x733.png) 

จากนั้นมันจะเอาข้อมูลเข้าสู่หน้าต่างของ PowerPivot

 ![4](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-004-1024x618.png) 

จากนั้นให้กด Switch to workbook เพื่อกลับออกมาใน Excel แล้วกด Add To Data Model ให้ครบทุกตารางที่มีความสัมพันธ์กัน

 

พอ add เข้าไปหลายตาราง ในหน้า Power Pivot จะมีหลายชีทด้วย

 ![5](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-006.png) 

จากนั้นให้กดดู Diagram View เพื่อผูกความสัมพันธ์ตารางต่างๆ เข้าด้วยกัน

 ![6](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-007-1024x206.png) 

เราจะเห็นตารางแยกกันอยู่ ให้เรา**กำหนด Relationship **โดยลากเส้นเชื่อมว่า field ไหนคือตัวที่เชื่อมความสัมพันธ์ระหว่างแต่ละตารางเข้าด้วยกัน (จะลากจากไหนไปไหนก็ได้)

 ![7](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-008-1024x417.png) 

ทำให้ครบจะได้แบบนี้ จากนั้นก็กดสร้าง PivotTable ได้แล้ว

 ![สร้าง PivotTable จากข้อมูลหลายตาราง](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-009-1024x540.png) 

เราก็จะสามารถใช้ PivotTable Model Data Model แล้วยังสามารถลาก Field ข้ามตารางได้เลย โดยไม่ต้องเอาข้อมูลมารวมกันเป็นตารางเดียวกันอีก

 ![8](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-010-1024x796.png) 

สำหรับรายละเอียดว่า Concept ของ Data Model ทำงานยังไง ให้ไป[อ่านใน Series Power BI](https://www.thepexcel.com/build-first-power-bi-report/) ได้ครับ

 

**หมายเหตุ** : นอกจากวิธีนี้ เรายังกดสร้าง PivotTable โดยใช้ Data Model แบบไม่เปิด PowerPivot ก็ได้ โดยกดสร้าง PivotTable จากตารางโดยตรง แล้วติ๊ก Add to Data Model

 ![9](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-011-1024x740.png) 

แต่ข้อเสียของวิธีนี้ก็คือการกำหนด Relationship จะทำยากกว่า (เพราะไม่เห็นภาพ) โดยต้องใช้เมนูนี้

 ![10](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-012-1024x538.png)  

## **วิธีที่ 2** : ใช้ Power Query (เหมาะกับ Excel 2013 ขึ้นไป)

 ![Pivot Table จากหลายตาราง](https://www.thepexcel.com/wp-content/uploads/2016/06/Power-Query-Editor-1024x470.png) 

การใช้ Power Query นั้นสามารถทำได้ 2 ลักษณะ คือ

 

### 2.1 เตรียมตารางแยกหลายๆ ตารางที่มีความสัมพันธ์กัน แล้วส่งเข้าสู่ Data Model

 

ถ้าใช้แบบนี้ ก็เป็นการใช้ Power Query แค่จัดหน้าตาข้อมูลให้เหมาะสมเท่านั้น เพิ่มเติมแค่ตอนกด Close & Load To… ให้เลือกเป็น Connection Only (เพราะเราจะไม่ Load ผลลัพธ์ออกมาใน Excel ปกติ) แต่ให้ติ๊กเลือกว่า Add to Data Model เพื่อให้มันส่งผลลัพธ์เข้า Data Model เท่านั้นเอง

 ![11](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-013.png) 

### 2.2 รวมข้อมูลทั้งหมดให้อยู่ในตารางเดียวกันก่อน แล้วค่อยส่งเข้า Pivot Table แบบปกติ

 

คำว่ารวมให้อยู่ในตารางเดียว จริงๆ แล้วก็มี 2 แบบใหญ่ๆ **นั่นคือ รวมคอลัมน์ กับ รวมแถว **

 
- การรวมข้อมูลหลายๆ ตารางมาต่อแถวกัน (คล้ายการที่เรา Copy Paste ) เรียกว่า **Append**
- การรวมข้อมูลหลายๆ ตารางมารวมคอลัมน์กัน (คล้ายๆ กับใช้ VLOOKUP) เรียกว่า **Merge**

 

จากนั้นค่อยส่งผลลัพธ์ที่รวมตารางเสร็จแล้วเข้าสู่ Pivot Table อีกทีครับ

 

#### Append เพื่อรวมตารางแบบเพิ่มแถว

 

วิธี Append ก็ให้สร้าง Query 2 ตารางขึ้นมาก่อน ตารางไหนยังไม่เอาผลลัพธ์ออกมาก็ทำแบบ Connection Only ไว้ เช่น อาจทำให้เป็น Connection Only ทั้งคู่เลย แล้วกดคลิ๊กขวาที่ Query ตัวแรก แล้วเลือก Append กับ Query ตัวอื่นๆ

 ![12](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-014.png) ![13](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-015.png) 

แล้วเราก็จะได้ Query ใหม่ ที่เป็นผลลัพธ์จากการ Append 2 ตารางเข้าด้วยกัน (เอามาต่อแถวกัน)

 ![14](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-016-1024x292.png) 

จากนั้นก็เอาผลลัพธ์ออกไปใช้ใน Pivot Table ได้

 ![15](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-017.png) 

ถ้ามีหลายตารางที่มีความสัมพันธ์กันจะติ๊ก Add this Data to the Data Model ด้วยก็ได้

 

#### Merge เพื่อรวมตารางแบบเพิ่มคอลัมน์

 

การจะ Merge ก็ให้สร้าง Query 2 ตารางขึ้นมาก่อน ตารางไหนยังไม่เอาผลลัพธ์ออกมาก็ทำแบบ Connection Only ไว้

 

จากนั้นกดที่ Query แรกแล้วคลิ๊กขวาเลือก Merge กับ Query ตัวที่สอง ที่สำคัญคือต้องเลือกด้วยว่าคอลัมน์ไหนคือตัวเชื่อมกัน และเลือก JoinKind ด้วย ซึ่งปกติก็จะเป็น Left Outer Join แบบนี้แหละ ok ได้เลย

 ![16](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-018.png) 

ผลลัพธ์จะออกมาเป็น Table ก่อน

 ![17](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-019-1024x380.png) 

ให้เราคลิ๊กที่มุมขวาบนของคอลัมน์เพื่อ Expand เอาข้อมูลออกมา

 ![18](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-020.png) 

แล้วเราก็จะได้ผลลัพธ์คล้ายๆ กับ VLOOKUP เลย (แต่ถ้าตารางอ้างอิงมีหลายบรรทัด มันจะมาทุกบรรทัดนะ ต่างจาก VLOOKUP ที่จะมาแค่อันบนสุด)

 ![19](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-021-1024x324.png) 

จากนั้นก็ Load เอาผลลัพธ์เข้า Pivot Table ได้เลย

 ![20](https://www.thepexcel.com/wp-content/uploads/2020/04/pivot-multi-data-source-022-1024x568.png) 

## วิธีที่ 3 : ใช้ Microsoft Query

 

วิธีสร้าง PivotTable จากข้อมูลหลายตารางด้วย Microsoft Query เหมาะกับคนที่ไม่มี Power Query ให้ใช้ เช่นคนที่มี Excel Version เก่ามากๆ นั่นเองครับ

 

**วิธีการทำมีดังนี้**

 
1. เรียกใช้ Microsoft Query โดยไปที่ Data => Get External Data => From Other Source => From Microsoft Query (Excel Version ใหม่จะไม่มีเมนูนี้แล้ว)
2. ดับเบิ้ลคลิ๊กที่ Excel File* แล้วเลือกไฟล์ Excel ที่ต้องการ 
    - ปกติเลือกไฟล์ที่ทำงานอยู่ก็ได้ แต่ถ้าใครกดไม่ได้ให้เปิดจากไฟล์อื่น)
    - ถ้ามี Error บอกว่าหา Table ไม่เจอ ให้เลือก Option แล้วติ๊ก System Table ด้วย  
      
      
      [![table-option](https://www.thepexcel.com/wp-content/uploads/2016/06/table-option.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/table-option.png)
3. เลือก Table ซักอัน แล้วกด > เพื่อ Add Field (ในที่นี้ของผมมีปัญหากับ field ภาษาไทย ผมเลยต้องเปลี่ยนชื่อ Field เป็นภาษาอังกฤษ)  
  ![Microsoft Query-01](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-01.png)
4. กด Next ไปจนหน้าสุดท้าย ให้เปลี่ยนเป็นเลือกดู Query ก่อน  
  
  
  [![Microsoft Query-02](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-02.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-02.png)
5. กด SQL แล้วแก้ Code ให้เป็นดังนี้  
  SELECT *  
  FROM ‘pathของไฟล์’.’ชื่อชีทแรก(ตามที่มันแสดง)’ ‘ชื่อชีทแรก(ตามที่มันแสดง)’  
  UNION ALL  
  SELECT *  
  FROM ‘pathของไฟล์’.’ชื่อชีทสอง(ตามที่มันแสดง)’ ‘ชื่อชีทสอง(ตามที่มันแสดง)’  
  
  
  [![Microsoft Query-03](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-03.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-03.png)
6. ของผมจะได้เป็นแบบนี้  
  SELECT *  
  FROM ‘D:\INWEXCEL\PIVOT\multiple-pivot-data2.xlsx’.’Month1$’ ‘Month1$’  
  UNION ALL  
  SELECT *  
  FROM ‘D:\INWEXCEL\PIVOT\multiple-pivot-data2.xlsx’.’Month2$’ ‘Month2$’
7. แล้วกด OK แล้วมันจะบอกว่าไม่สามารถแสดงผลได้นะ ให้ OK อีกที
8. จากนั้นไปที่ file => return data to excel  
  
  
  [![Microsoft Query-04](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-04.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-04.png)
9. เลือกให้ส่งเข้า PivotTable ไปเลยก็ได้ (ถ้าเลือกเป็น Table มันจะออกมาเป็นตารางก่อน)  
  
  
  [![Microsoft Query-05](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-05.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-05.png)
10. จากนั้นก็หมุน PivotTable ทุกอย่างได้ตามปกติ  
  
  
  [![Microsoft Query-06](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-06-1024x512.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/Microsoft-Query-06.png)

 

วิธีการใช้ Microsoft Query นี้ สามารถนำมาประยุกต์ได้เยอะแยะ เช่น มี 2 ตารางแยกกันอยู่ อยากเอามาผูกกันโดยไม่ต้องใช้ VLOOKUP ก็ยังได้เลยครับ โดยมีทั้งแบบลากเส้นเชื่อมเองใน Editor หรือจะเขียน SQL เอง ก็ได้ (ภาษา SQL ทำได้แทบทุกอย่าง แต่อาจต้องศึกษาเยอะหน่อย)

 

## **วิธีที่ 4** : ใช้ Multiple Consolidation Ranges (PivotTable Wizard เหมาะกับ Excel เก่า)

 

วิธีสร้าง PivotTable จากข้อมูลหลายตารางด้วยตัวเลือก Multiple Consolidation Ranges ในคำสั่ง PivotTable Wizard **เป็นวิธีที่มีข้อจำกัดมากที่สุด ผมจึงไม่แนะนำครับ** แค่จะเอาให้ดูเฉยๆ ว่าในอดีตมันทำแบบนี้ได้

 

### **วิธีทำแบบสั้นๆ**

 

กด Alt, D, P เพื่อเรียก PivotTable Wizard แล้วเลือก Multiple Consolidation Ranges  
![consolidate-range](https://www.thepexcel.com/wp-content/uploads/2016/06/consolidate-range.png)

 

เพื่อความง่ายเลือก Create a single page field for me ไปเลยก็ได้ครับ

 

เลือก Range ที่ต้องการ แล้วกด Add โดยทำทีละ source พอเสร็จแล้วก็กด Next จนจบกระบวนการ  

[![select-range](https://www.thepexcel.com/wp-content/uploads/2016/06/select-range.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/select-range.png)

 

คุณจะได้ PivotTable หน้าตาประหลาดมา 1 อัน ดังนี้  

[![first-result2](https://www.thepexcel.com/wp-content/uploads/2016/06/first-result2.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/first-result2.png)

 

**ผลลัพธ์ที่ได้ มีข้อจำกัดดังนี้ **

 
- Field แรกใน Data Source ต้องมาเป็น Row Item Label เสมอ
- Field ที่เหลืออันอื่นจะมาอยู่ใน Column Label เสมอ (มาเป็นชุดถ้าเอาออกต้องเอาออกหมดเลย)
- การสรุปผล เช่น SUM, COUNT เปลี่ยนได้ แต่เปลี่ยนแล้วเท่ากับเปลี่ยนให้กับทุก Field เลย ไม่สามารถทำให้แต่ละ Field ไม่เหมือนกันได้
- Field Page 1 แค่เป็นตัว Filter เลือกแต่ละ Data Source เฉยๆ เอาออกก็ได้

 

วิธี**ปรับแต่ง Data Source** เพื่อทำให้แสดงผลดีขึ้นภายใต้ข้อจำกัดที่มี

 
- เอา Item ที่ต้องการไว้เป็น Row Item Label ไว้ Field แรกเสมอ
- ย้าย Field ที่ไม่ต้องการไปทางขวาๆ แล้วตอนเลือก Range ไม่ต้องเลือกมัน

 

ผมลองทำแล้ว ก็พอจะได้ผลลัพธ์ที่ ok ขึ้น ดังนี้ (ผมแยกแต่ละชีทเป็นคนละเดือน ดังนั้นเลยเอา Page1 มาใส่เป็นเดือนได้)  

[![first-result3](https://www.thepexcel.com/wp-content/uploads/2016/06/first-result3.png)](https://www.thepexcel.com/wp-content/uploads/2016/06/first-result3.png)

 

สรุปแล้วจะเห็นว่าวิธี Multiple Consolidation Ranges นั้นมีข้อจำกัดมากเลยนะครับ เห็นมะ อย่าใช้เลย 555

 

## เพื่อนๆ ชอบแบบไหน หรือผสมแบบไหนดี?

 

ส่วนตัวผมชอบใช้ Power Query จัดข้อมูลให้เรียบร้อยก่อน แล้วค่อยส่งเข้า Data Model ไปทำต่อครับ พูดง่ายๆ คือ [Step เหมือน Power BI เป๊ะเลย](https://www.thepexcel.com/power-bi-overview/)

 

เพื่อนๆ ชอบแบบไหนกันบ้างครับ อย่าลืม Comment บอกด้วยนะ

---

_Source: [https://www.thepexcel.com/pivottable-multiple-data-source-4method/](https://www.thepexcel.com/pivottable-multiple-data-source-4method/)_
