EXPAND ขยายตาราง (array) ให้มีขนาดใหญ่ขึ้นตามที่กำหนด แล้วเติมช่องที่เกินมาด้วยค่าที่เราเลือก ประโยชน์หลักคือบังคับให้ผลลัพธ์ที่ล้นออกมา (spill) มีขนาดคงที่เสมอ เพื่อให้การอ้างอิงต่อ การจัดรูปแบบ หรือการวางแผงข้อมูลบนแดชบอร์ดไม่ขยับไปมา เป็นสูตร dynamic array ใน Microsoft 365
รูปแบบของสูตร EXPAND
=EXPAND(ตาราง, จำนวนแถว, [จำนวนคอลัมน์], [เติมด้วยค่าอะไร])
ถ้าไม่ใส่ค่าที่จะเติม จะเติมด้วย #N/A ส่วนใหญ่จึงนิยมกำหนดเป็น "" (ว่าง) หรือ 0
ตัวอย่างที่ 1: ขยายผลลัพธ์ให้เต็ม 5 แถวเสมอ
=EXPAND(FILTER(A2:B6, B2:B6>100), 5, 2, "")| A | B | E | F | ||
|---|---|---|---|---|---|
| 1 | ชื่อ | ยอด | ชื่อ | ยอด | |
| 2 | ก้อง | 250 | ก้อง | 250 | |
| 3 | แนน | 80 | เจน | 300 | |
| 4 | เจน | 300 | (ว่าง) | (ว่าง) | |
| 5 | ปุ๊ก | 90 | (ว่าง) | (ว่าง) |
FILTER คืนมา 2 แถว แต่ EXPAND บังคับให้เป็น 5 แถว 2 คอลัมน์เสมอ เติมช่องที่เหลือด้วยค่าว่าง ทำให้แผงตารางบนรายงานมีความสูงคงที่ ไม่ว่าจะกรองได้กี่รายการ
ตัวอย่างที่ 2: เติมให้เท่ากันก่อนต่อตาราง
=VSTACK(EXPAND(A2:A4, 3, 2, ""), C2:D5)| A | C | D | E | F | |||
|---|---|---|---|---|---|---|---|
| 1 | ชื่อเดี่ยว | ชื่อ | แผนก | รวม | |||
| 2 | ก้อง | แนน | ขาย | ก้อง | (ว่าง) | ||
| 3 | ตูน | เจน | บัญชี | ตูน | (ว่าง) | ||
คอลัมน์ A มีข้อมูลแค่คอลัมน์เดียว แต่จะเอาไปต่อ (VSTACK) กับตาราง C:D ที่มี 2 คอลัมน์ ต้อง EXPAND ให้ A กว้าง 2 คอลัมน์ก่อน ไม่งั้น VSTACK จะเติม #N/A ให้เอง
ข้อควรรู้
- ขยายได้อย่างเดียว — จำนวนแถว/คอลัมน์ที่ระบุต้องไม่น้อยกว่าขนาดเดิม ถ้าน้อยกว่าจะได้
#VALUE!ถ้าอยากตัดให้เล็กลงใช้ TAKE หรือ DROP - เว้นจำนวนคอลัมน์ได้ — ถ้าใส่แค่จำนวนแถว คอลัมน์จะคงเดิม
- เป็นสูตรของ Microsoft 365 / Excel 2024