---
title: เข้าสู่โลกใหม่ของการเขียนสูตร Excel ด้วย Array Formula
url: https://www.thepexcel.com/new-world-of-array-formula/
type: post
date: 2016-02-09
updated: 2026-05-03
author: Sira Ekabut
categories: [Excel Advanced Formula]
---

# เข้าสู่โลกใหม่ของการเขียนสูตร Excel ด้วย Array Formula

บทความนี้ผมตั้งใจจะให้เป็นบทความที่จะสอน Concept ของ Array Formula แบบสั้นๆ พอได้ไอเดียและพอเห็นภาพว่า Array Formula คืออะไร? มีข้อดีข้อเสียอย่างไร ?

 

ใครอยากรู้เชิญอ่านได้เลยครับ รับรองว่าได้ความรู้ดีๆ เพียบเช่นเคย!

 

## เมื่อความรู้ดั้งเดิมมีข้อจำกัด

 

ในสมัยก่อน…วิชาวิทยาศาสตร์อย่าง ฟิสิกส์ เคมี ที่หลายๆ คนเคยเรียน สามารถอธิบายปัญหาและปรากฏการณ์ต่างๆ ที่เกิดขึ้นบนโลกนี้ได้เป็นอย่างดี นักวิทยาศาสตร์ยุคแรกๆ เรียนรู้… ทำความเข้าใจกฎเกณฑ์ที่เกี่ยวกับมัน จนคิดว่ารู้จักมันดีในระดับหนึ่งแล้ว

 

แต่ต่อมา เมื่อพวกเขาเหล่านั้นได้พบเจอสิ่งต่างๆ มากขึ้นเรื่อยๆ พวกเขาเริ่มตระหนักได้ว่า ยังมีอีกหลายเรื่องที่วิทยาศาสตร์แบบเดิมอธิบายไม่ได้ เช่น สิ่งที่อยู่นอกจักรวาล การเคลื่อนที่ระดับความเร็วแสง หรือ แม้แต่สิ่งเล็กๆ ระดับอนุภาค ซึ่งจะต้องใช้วิทยาศาสตร์แบบใหม่ อย่าง ทฤษฎีสัมพัทธภาพ หรือ กลศาสตร์ควอนตัม มาอธิบาย จึงจะทำความเข้าใจได้อย่างลึกซึ้ง เรียกได้ว่า** ความรู้แบบเดิม “มีข้อจำกัดในการใช้งาน” **คือ ใช้กับบางสถานการณ์ที่มีความซับซ้อนมากไม่ได้

 ![spacetime_strip](https://www.thepexcel.com/wp-content/uploads/2014/04/spacetime_strip.jpg)  

*ฟิสิกส์แบบนิวตัน ใช้อธิบายหลายๆเรื่องในอวกาศไม่ได้ ต้องใช้ทฤษฎีไอน์สไตน์แทน นี่แหละคือตัวอย่างของความรู้เดิมใช้ได้จำกัด*

 

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

 

หากเพื่อนๆ เริ่มพบว่า การเขียนสูตรแบบเดิมเริ่มตอบโจทย์บางอย่างไม่ได้ เช่น

 
- อยากจะเขียนสูตรเพื่อให้แสดงค่า Percentile ที่ 70% ของข้อมูล โดยมีเงื่อนไขว่าต้องเป็นค่าเฉพาะของกลุ่มคนที่กำหนดด้วย (ใช้ Pivot ยังไม่ได้เลยครับ)
- อยากจะให้ excel List ข้อมูลทุกบรรทัด ที่มีเงื่อนไขตรงกับที่กำหนดออกมา โดยใช้สูตร (ปกติ VLOOKUP จะเจอแค่บรรทัดแรก)
- หากเราต้องการจะประหยัดเนื้อที่ชีทให้ได้มากที่สุด ไม่ต้องการเสียพื้นที่ในการทดข้อมูล จะทำยังไง

 

ปัญหาทุกอย่างนี้ สามารถถูกแก้ไขได้ด้วย **การเขียนสูตรอีกวิธีที่เรียกว่า Array Formula** ซึ่งนอกจากจะช่วยแก้ปัญหาแล้ว ยังทำให้ศักยภาพในการเขียนสูตรเราเพิ่มขึ้นอีกมหาศาลเลยทีเดียว

 

## Array Formula คืออะไร?

 

มันคือการเขียนสูตร Excel ขั้นสูง ที่เราเอาไว้ทำเรื่องเจ๋งๆ อย่างการ Dynamic Range (ขยาย หด range ตามต้องการ) , Filter, Sort, การคำนวณแบบแปลกๆ ตามเงื่อนไข ด้วย “การเขียนสูตร” ได้

 

Array Formula จะเป็นสูตรที่ทำงานกับ **ชุดข้อมูลที่มีสมาชิกหลายๆ ตัว** (Array) พร้อมๆ กัน

 

พูดง่ายๆ คือ ถ้าเรา**ใส่ Range แทนลงในตำแหน่งในสูตรที่ปกติจะเป็น Cell เดียว** นั่นแหละ Array Formula

 

ตัวอย่าง เข่น ที่ผม Highlight สีแดงไว้ ก็ถือว่าเป็นส่วนที่ทำให้เกิดสูตรแบบ Array ทั้งสิ้น เพราะมีการใส่ข้อมูลเป็น Range แทนที่จะใส่ช่องเดี่ยวๆ ตามปกติ

 
- **สูตรปกติ :** =A1*B1
- **สูตร Array : **=A1:A5*B1:B5 หรือ =A1:A5*B1
- **สูตรปกติ :** =LEN(A1)
- **สูตร Array : **=LEN(A1:B10)

 

โดยที่ปกติแล้ว เวลาเราเขียนสูตรแบบ Array จะ**ต้องกดปุ่ม Ctrl+Shift+Enter เพื่อบอก Excel ว่าจะใช้สูตรแบบ Array แล้วนะ**… ไม่งั้น Excel จะให้ค่า Error กลับมา (เหมือนด่าว่าเราเขียนสูตรไม่เป็น)

 

โดยที่เวลากด Ctrl+Shift+Enter แล้ว ตรง Formula Bar จะ**มีเครื่องหมายปีกกา { } มาครอบให้โดยอัตโนมัติ **(เขียนเองไม่ได้) เพื่อบ่งบอกว่าสูตรนี้เป็นสูตรพิเศษ ที่กด Ctrl+Shift+Enter เพื่อใช้งาน

 

[![array-0](https://www.thepexcel.com/wp-content/uploads/2016/02/array-0.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-0.png)

 

## ผลลัพธ์ของ Array Formula

 
- Array Formula สามารถให้ผลลัพธ์การคำนวณออกมาได้ **1 ค่า หรือจะมากกว่า 1 ค่าก็ได้** แล้วแต่วิธีที่เราเขียนสูตร โดยที่เราสามารถตรวจสอบได้โดยการ**ลากแถบดำแล้วกดปุ่ม F9**
- แต่ทว่า **ในแต่ละ Cell ของ Excel นั้นจะแสดงผลลัพธ์ได้เพียง 1 ค่าเท่านั้น**
- ดังนั้นถ้าเราเขียน Array Formula ที่ให้ผลลัพธ์มากกว่า 1 ตัว แต่เขียนสูตรอยู่ใน 1 Cell มันจะแสดงผลลัพธ์ออกมาแค่ค่าแรกสุดค่าเดียว (แต่จริงๆ เก็บข้อมูลไว้หลายค่า)
- ถ้าอยากจะแสดงผลลัพธ์ให้ครบทุกตัว ต้อง**ลากพื้นที่เลือก Range ให้ครอบคลุมจำนวนผลลัพธ์ที่ต้องการแสดงซะก่อน** จากนั้นค่อยใส่สูตร Array แล้วกด Ctrl+Shift+Enter
- หรือจะมีอีกกรณีคือ จะต้องใส่ฟังก์ชั่นบางอย่างครอบผลลัพธ์ลงไป เพื่อทำการรวบผลลัพธ์ทั้งหมดที่มีหลายค่า ให้เหลือเพียงค่าเดียว เช่น การใช้ฟังก์ชั่นสรุปผลอย่างเช่น SUM, MAX, MIN… และอื่นๆ อีกเยอะแยะ

 

## ค่าที่แท้จริงของ Array

 

สมมติผมเขียนสูตรแบบนี้

 

[![array-1](https://www.thepexcel.com/wp-content/uploads/2016/02/array-1.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-1.png)

 

หากลองกด F9 ดูเพื่อดูค่าที่แท้จริงว่าคืออะไร มันจะได้แบบนี้ครับ

 

[![array-2](https://www.thepexcel.com/wp-content/uploads/2016/02/array-2.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-2.png)

 

ในทำนองเดียวกัน ถ้าเป็นแบบนี้

 

[![array-3](https://www.thepexcel.com/wp-content/uploads/2016/02/array-3.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-3.png)

 

เวลากด F9 จะได้แบบนี้

 

[![array-4](https://www.thepexcel.com/wp-content/uploads/2016/02/array-4.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-4.png)

 

ผลลัพธ์ที่ออกมานั้นบ่งบอกว่า ในสูตรๆ เดียวที่เราเขียนนั้น ให้ค่าผลลัพธ์ออกมาหลายตัวด้วยกัน

 

ดูเผินๆ อาจดูเหมือนว่าทั้ง 2 กรณีได้ผลลัพธ์เหมือนกัน แต่ถ้าดูดีๆ จะเห็นว่าต่างกันตรงเครื่องหมายที่เป็นตัวคั่น

 
- **มีหลายแถว** ={“a”;”b”;”c”;1;2;3} สังเกตว่ามีผลลัพธ์ 6 ตัว คั่นด้วย Semi Colon
- **มีหลายคอลัมน์** ={“a”,”b”,”c”,1,2,3} สังเกตว่า มีผลลัพธ์ 6 ตัว แต่คั่นด้วย Comma  
  ** วิธีการจำคือ ถ้าขึ้น **C**olumn ใหม่ ใช้ **C**omma (ตัว C เหมือนกัน)

 

### เปรียบเทียบสูตรแบบปกติ กับ สูตรแบบ Array Formula

 

|   |   |   |
| --- | --- | --- |
| ** ** | **สูตรปกติ** | **Array Formula** |
| **การใส่สูตร** | ใส่ข้อมูลที่ละตัวเช่น = 1*10 | ใส่ข้อมูลเป็นชุดเช่น ={1,2,3}*{10,20,30} |
| **การคำนวณ** | คำนวณปกติ ไม่มีการจับคู่คำนวณเช่น = 1*10 | จับคู่อันดับในการคำนวณ   (ตัวแรกชุดนึงคู่กับตัวแรกของอีกชุด)={1*10,2*20,3*30}={10,40,90} |
| **การ Confirm สูตร** | กด Enter หรือ เลื่อนไป Cell อื่น | กด Ctrl+Shift+Enter |
| **ผลลัพธ์** | ได้ข้อมูลออกมาค่าเดียวเสมอ= 10 เลยตัวเดียว | ข้อมูลสามารถออกมาได้หลายตัวจากสูตรเดียวอาจกระจายอยู่หลายๆ ช่องได้ เช่น   ได้ผลลัพธ์เป็น 3 ค่า คือ   = {10,40,90}แต่ Excel ไม่สามารถแสดงข้อมูล 3 ตัวในช่องเดียวกันได้ เลยขึ้นแค่คู่แรก คือ 10 |

 

### จัดการอย่างไรดีกับการที่ Array ออกมาหลายค่า?

 

เรามีทางเลือก 2 ทางหลักๆ ครับ คือ

 
1. เปลี่ยนการเขียนสูตร เป็นให้ลากครอบคลุมหลายช่องก่อน แล้วค่อยใส่สูตร Array Formula 
    - หากเราลากพื้นที่หลายช่องไว้ก่อน (ครอบ A4:C4 แล้วค่อยใส่สูตร) ผลลัพธ์จะแสดงออกมาทีเดียวหลายช่อง ช่องละ item
    - และถ้าสังเกตดู คือ สูตรในแต่ละช่องจะเห็นเป็นสูตรเดียวกัน แม้ค่าจะออกมาต่างกันเป็นคนละ item
    - [![Array-Display-1](https://www.thepexcel.com/wp-content/uploads/2014/04/Array-Display-1.gif)](https://www.thepexcel.com/wp-content/uploads/2014/04/Array-Display-1.gif)
  
   
    - ในตัวอย่าง คือ จะเห็น 10 40 90 อยู่แยกกันคนละ cell
    - การทำแบบนี้ จะมีลักษณะพิเศษอย่างนึง คือ หลังจากทำแบบนี้แล้ว เราไม่สามารถลบข้อมูลช่องใดช่องหนึ่งทิ้งได้ ถ้าจะลบต้องลบทั้งหมด
2. หาฟังก์ชั่นที่ทำหน้าที่สรุปข้อมูลมาครอบอีกทีเพื่อให้รวมค่าหลายๆ ให้อยู่ในช่องเดียว เช่น SUM 
    - จะได้ว่า =SUM({1,2,3}*{10,20,30}) = 140
    - [![Array-Display-2](https://www.thepexcel.com/wp-content/uploads/2014/04/Array-Display-2.gif)](https://www.thepexcel.com/wp-content/uploads/2014/04/Array-Display-2.gif)
    - แบบนี้จะทำให้ข้อมูลทั้ง Array ออกมาที่ช่องเดียวได้

 

## ตัวอย่างการคำนวณแบบ Array

 

ปกติเรามักจะใส่สูตร Array โดยเป็น Range ที่มีขนาดเท่าๆ กัน มาทำอะไรซักอย่าง เช่น บวก ลบ คูณ หาร เชื่อมText หรือเอาไปใส่ใน Function ต่างๆ

 

เช่น ในรูปข้างล่างเป็น Range ที่มีขนาด 1 แถว 3 คอลัมน์ 2 อันมาคูณกัน Excel จะทำการจับคู่คำนวณ โดย**เอาสมาชิกแต่ละอันดับมาคูณกัน** (ตัวแรกคู่ตัวแรก ตัวที่สองคู่ตัวที่สอง…)

 

แบบนี้จะได้**ผลลัพธ์ออกมา 3 ตัว **เหมือนกับ Range 2 ตัวที่เป็น Input

 

[![array-cal-match](https://www.thepexcel.com/wp-content/uploads/2014/04/array-cal-match.gif)](https://www.thepexcel.com/wp-content/uploads/2014/04/array-cal-match.gif)

 

อีกแบบหนึ่งที่อาจพบบ่อย คือ ตัวนึงเป็น Range อีกตัวเป็นตัวเดี่ยวๆ เวลา Excel จับคู่มันจะจับตัวเดี่ยวคู่กับสมาชิกทุกตัวที่เป็น Range เลย

 

แบบนี้จะได้**ผลลัพธ์ออกมา 3 ตัว** เช่นกัน (เหมือนกับ Range ที่เป็น Input)

 

[![array-cal-match2](https://www.thepexcel.com/wp-content/uploads/2014/04/array-cal-match2.gif)](https://www.thepexcel.com/wp-content/uploads/2014/04/array-cal-match2.gif)

 

## ตัวอย่างจริง

 

### ตัวอย่างที่ 1 หายอดขายรวมที่ต้องทำเพิ่ม

 

ถ้าเขียนสูตรปกติ ก็ต้องกดไว้ก่อนว่าขาดเป้าเท่าไหร่ แล้วค่อยเขียน SUM รวมอีกที

 ![array formula](https://www.thepexcel.com/wp-content/uploads/2016/02/array-6fix.png) 

### ตัวอย่างที่ 2 หาว่ายาวสุดกี่ตัวอักษร

 

ถ้าเขียนสูตรปกติ จะต้องทดไว้ก่อนว่าแต่ละคำยาวกี่ตัวอักษร แล้วค่อยใช้ MAX มาครอบ แต่ถ้าใช้ Array ก็สามารถเขียนใน Cell เดียวได้เลย

 

[![array-5](https://www.thepexcel.com/wp-content/uploads/2016/02/array-5.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-5.png)

 

### ตัวอย่างที่ 3 ตรวจการกรอกรหัสบัตรประชาชนว่าใส่ถูกต้องหรือไม่? (Advance)

 

ให้ B2 เป็นช่องที่เราจะใส่รหัสประชาชน 13 หลักลงไป แล้วเราจะตรวจเลขตำแหน่งสุดท้ายได้ด้วยสูตรนี้ครับ (เป็น Array Formula ที่ไม่ต้องกด Ctrl+Shift+Enter เนื่องจากเป็นความสามารถพิเศษของ SUMPRODUCT ครับ)

 

```
=RIGHT(11-MOD(SUMPRODUCT(--(MID(B2,ROW(INDIRECT("1:12")),1)),14-ROW(INDIRECT("1:12"))),11),1)
```

 

[![array-7](https://www.thepexcel.com/wp-content/uploads/2016/02/array-7.png)](https://www.thepexcel.com/wp-content/uploads/2016/02/array-7.png)

 

## สรุปแล้ว Array Formula ดียังไง?

 

การเขียน Array Formula นั้นผมเชื่อว่ามีคนไม่ถึง 5% ของคนทั้งโลกที่ใช้มันเป็น… ดังนั้นข้อดีของมันอย่างแรกก็คือ **“ถ้าคุณใช้เป็นคุณจะโคตรเทพ!”** ซึ่งอันนี้เป็นข้อดีทางจิตใจ อิอิ

 

ส่วนข้อดีทางเทคนิคจริงๆ ของ Array Formula ก็คือ มันช่วยให้…

 
1. **ประหยัดเนื้อที่การคำนวณ** สามารถพุ่งไปยังคำตอบสุดท้ายได้ใน Cell เดียว โดยไม่ต้องทดการคำนวณทิ้งไว้หลาย Cell
2. **สร้าง Range จำลองขึ้นมาได้** ในสถานการณ์ต่างๆ เช่น เอาไปใส่ใน Defined Name หรือทำ Dynamic Range ได้
3. **สร้างเกราะป้องกันไม่ให้มีคนมาแก้บางส่วนของสูตรได้** ถ้าจะลบ Array Formula ต้องลบทั้งยวง ไม่สามารถลบบางส่วนได้
4. **ผลลัพธ์อัปเดททันทีเมื่อ Input เปลี่ยนไป** ซึ่งอันนี้คือข้อดีสุดๆ ของการเขียนสูตรทุกชนิด เมื่อเทียบกับเครื่องมืออื่นๆ ใน Excel ที่ใช้งานง่ายกว่า เช่น Sort/Filter/PivotTable/Advanced Filter

 

## ข้อเสียของ Array Formula

 
1. **มันยากกว่าสูตรปกติ** การเขียนสูตร Array ว่ายากแล้ว แต่อ่านสูตรแบบ Array ที่คนอื่นเขียนนั้นยิ่งมึนหนักกว่า! ยิ่งหากปล่อยให้คนทั่วไปมาอ่าน มีสิทธิ์ช๊อคตายได้เลย
2. **อาจทำให้คำนวณช้าลงได้** การเขียน Array Formula ถ้าเขียนไม่ดร อาจทำให้คำนวณช้ากว่าการแยก Cell ทดไว้ตามปกติได้

 

### แล้วยังไงต่อ?

 

คราวนี้ก็ขึ้นอยู่กับคุณแล้วล่ะ ว่าอยากจะเรียนรู้การเขียนสูตรแบบ Array รึเปล่า? เพราะถ้าถามว่าจำเป็นสุดๆ มั้ย? ก็ต้องตอบว่า ถึงใช้ Array ไม่เป็นก็น่าจะพอหาคำตอบแบบเดียวกันได้ แต่อาจจะยุ่งยากพอสมควรหรือต้องทดไว้ใน Cell อื่นเยอะมากๆ (เช่น ถ้าจะหาค่า Percentile ของข้อมูลตาม Criteria ต่างๆ นี่อาจจะต้องทดเยอะมากๆ เลย)

 

ใครที่อยากเรียนรู้ Array Formula เพิ่มแบบลึกซึ้งยิ่งขึ้น สามารถศึกษาได้จาก [หนังสือ จอมเวท เทพ Excel ครับ](https://www.thepexcel.com/course/magic-excel-ebook/)

 

## ใน Excel 365 มีสูตร Array Formula แบบใหม่ขึ้นอีก เรียกว่า Dynamic Array

 

หากใครสนใจสามารถอ่านได้ที่ [เปลี่ยนสูตรยากให้เป็นสูตรกล้วยๆ ด้วย Dynamic Array ใน Excel 365](https://www.thepexcel.com/easy-dynamic-array-excel-365/)

---

_Source: [https://www.thepexcel.com/new-world-of-array-formula/](https://www.thepexcel.com/new-world-of-array-formula/)_
