---
title: "เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน"
url: https://www.thepexcel.com/play-excel-matrix-part2/
type: post
date: 2020-04-29
updated: 2025-12-22
author: Sira Ekabut
categories: [Excel Advanced Formula]
tags: [MMULT, TRANSPOSE, ROW, column, matrix]
---

# เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน

ในตอนที่แล้วเราได้เรียนรู้การใช้ Matrix ใน Excel เพื่อแก้สมการกันไปแล้ว ในบทความนี้เราจะมาลองดูตัวอย่างการประยุกต์ที่น่าสนใจอีกอันก็คือการนำมาสรุปข้อมูลในแต่ละแถวหรือแต่ละคอลัมน์กันครับ

 

สมมติเรามีข้อมูลต้นฉบับเป็น Array หรือ Matrix 4×3 ดังนี้ (ก็พิมพ์ลงไปตรงๆ นั่นแหละ) มาดูซิว่าเราจะทำอะไรกับมันได้บ้าง?

 ![1](https://www.thepexcel.com/wp-content/uploads/2020/04/Matrix2-001.png) 

## หาผลรวมแต่ละแถว

 

หากอยากจะหาผลรวมแต่ละแถว ปกติแล้วเราก็จะสามารถ SUM แต่ละแถวง่ายๆ ได้เลยเนอะ แต่**เพื่อวัตถุประสงค์ในการทำความเข้าใจกับ Matrix ให้มากขึ้น ****(เพื่อรองรับเคสที่ซับซ้อนขึ้นในอนาคต)** เราจะลองมาดูกันว่า ต้องคูณ Matrix ยังไงถึงจะได้ผลรวมแต่ละแถว

 

เดิม Matrix นี้เป็น 4×3 ซึ่งถ้าจะได้ผลรวมแถว มันจะต้องออกมาเป็น Matrix ผลลัพธ์ 4×1

 

นั่นคือ มันต้องไปคูณกับ Matrix อะไรซักอย่างซึ่งมี 3 แถว 1 คอลัมน์แน่นอนด้วยเหตุผลตามรูปนี้

 ![2](https://www.thepexcel.com/wp-content/uploads/2020/04/Matrix2-002xx.png) 

ซึ่งมันจะจับคู่แถวใน Matrix แรกมาคูณกับคอลัมน์แรกของ Matrix ที่สอง ซึ่งเราต้องการทั้งเลข 10, 85, 75 มาบวกกันหมดเลย แสดงว่ามันต้องคูณ 1 ทั้งหมดแน่นอน นั่นคือ Matrix ที่สองต้องเป็นเลข 1 หมดเลย เพื่อที่จะให้เป็น 10*1+ 85*1 + 75*1

 

ดังนั้นเขียนสูตรได้ว่า

 

```
=MMULT(B7:D10,F2:F4)
```

 ![3](https://www.thepexcel.com/wp-content/uploads/2020/04/Matrix2-003xx.png) 

ซึ่งถ้าเราไม่อยากจะมาทด Matrix ที่มีเลข 1 แบบนั้น เราก็ต้องสร้างมันขึ้นมา เช่น ใช้เลขประจำ COLUMN ของ Matrix แรกมาทำให้เป็น 1 ด้วยการยกกำลัง 0 แล้ว Transpose เปลี่ยนจากแนวนอน เป็นแนวตั้ง ก็ได้ เช่น

 

```
=MMULT(B7:D10,TRANSPOSE(COLUMN(B7:D10)^0))
```

 ![4](https://www.thepexcel.com/wp-content/uploads/2020/04/Matrix2-004-1024x461.png) 

### อธิบายเล็กน้อยเผื่องง

 
- =COLUMN(B7:D10) จะได้ {2,3,4}
- พอจับยกกำลัง 0 จะได้ {1,1,1} ซึ่งเป็น Array แนวนอน (คั่นด้วย **C**omma แปลว่าคนละ **C**olumn)
- เลย TRANSPOSE ได้ {1;1;1} ซึ่งเป็น Array แนวตั้ง (คั่นด้วย Semi-Colon)
- จากนั้นมันก็คืออันเดียวกับ F2:F4 ที่เราเขียนแบบ Manual นั่นแหละ

 

## ต่อไปมาหาผลรวมแต่ละคอลัมน์บ้าง

 

ถ้าคิดในทำนองเดียวกันกับอันแรก จะได้ผลลัพธ์เป็น 1 แถวx 3คอลัมน์ มันก็ต้องมี Matrix 1 x 4 มาคูณด้วยข้อมูลต้นฉบับของเรา และมันก็ต้องเป็นเลข 1 หมดเลยด้วย เพราะเราเอาทุกค่าคือ 1*10 + 1*30 + 1*70 +1*30

 

และสูตรก็คือ

 

```
=MMULT(A8:D8,F2:H5)
```

 ![5](https://www.thepexcel.com/wp-content/uploads/2020/04/Play-Matrix-004x-1024x393.png) 

และถ้าไม่อยากมาพิมพ์ Matrix 1×4 ที่เป็นเลข 1 ทดไว้ ก็สามารถสร้าง Matrix จำลองในลักษณะคล้ายๆ เดิมได้ว่า

 

```
=MMULT(TRANSPOSE(ROW(F2:H5)^0),F2:H5)
```

 

เพียงแต่เปลี่ยนมาเอาจำนวนแถวของ Matrix Original มาทำให้เป็น 1 ทั้งหมด แล้ว Transpose มาเป็นแนวนอน

 ![6](https://www.thepexcel.com/wp-content/uploads/2020/04/Matrix2-005-1024x460.png) 

และนี่ก็เป็นการใช้ Matrix เริ่มมาประยุกต์ทำอะไรที่เกี่ยวกับ Excel โดยตรงมากขึ้น [ตอนหน้าจะเริ่มน่าสนใจมากขึ้น](https://www.thepexcel.com/play-excel-matrix-part3/)แล้ว เช่น ใช้ Matrix ช่วยหาข้อมูลในหลายๆ คอลัมน์เป็นต้น ว่าข้อมูลที่ต้องการอยู่ในแถวไหนบ้าง ^^

---

_Source: [https://www.thepexcel.com/play-excel-matrix-part2/](https://www.thepexcel.com/play-excel-matrix-part2/)_
