Dynamic Arrays — FILTER, SORT, UNIQUE, SEQUENCE

1. เมื่อสูตรหนึ่งตอบได้หลายค่า

บทความก่อนหน้าเราจัดการกับวันที่กันไปแล้ว คราวนี้ผมจะพาคุณมาถึงจุดพลิกโฉมของ Excel ในยุค Microsoft 365 ครับ นั่นคือ Dynamic Arrays หรือที่เรียกกันว่า สูตรแบบไดนามิก

เคยไหมครับ เวลากรองข้อมูลก็ต้องเปิด Filter ทีละคอลัมน์ เวลาหาค่าที่ไม่ซ้ำก็ต้องคัดด้วยมือ หรือเวลาเรียงข้อมูลก็ต้องกด Sort แล้วเสี่ยงทำข้อมูลต้นฉบับเละไปกับมือ ถ้าฟังดูคุ้น นี่แหละคือปัญหาที่ Dynamic Arrays เกิดมาแก้

ก่อนหน้านี้ถ้าเราอยากให้สูตรตอบหลายค่าต้องกด Ctrl+Shift+Enter ให้เป็น Array Formula และผลลัพธ์ต้องวางไว้ให้พอดีล่วงหน้า ถ้าเผลอลากเยอะไปหรือหย่อนไปก็พังทิ้ง หรือถ้าเผลอไปกดตรงกลางก็แก้ยาก ยุคของ Dynamic Arrays ต่างออกไปสิ้นเชิง เพราะคุณแค่เขียนสูตรหนึ่งครั้ง แล้ว Excel จัดการเรื่องขนาดและตำแหน่งให้เองทั้งหมด

หลักการมันง่ายมาก คือสูตรกลุ่มนี้ตอบ ได้หลายค่าพร้อมกัน และค่าที่ตอบมานั้น ไหลลงมา (spill) ครอบคลุมหลายเซลล์อัตโนมัติ โดยคุณไม่ต้องลากสูตรลงมาเองแม้แต่เซลล์เดียว แถมเมื่อข้อมูลต้นทางเปลี่ยน ผลลัพธ์ก็อัปเดตตามทันทีแบบเรียลไทม์

ชุดฟังก์ชันที่เราจะเล่นกันวันนี้มี 4 ตัวหลักครับ

  • FILTER กรองข้อมูลตามเงื่อนไข อัตโนมัติ
  • SORT / SORTBY เรียงลำดับข้อมูล
  • UNIQUE ดึงค่าที่ไม่ซ้ำออกมา
  • SEQUENCE สร้างลำดับตัวเลขหรือวันที่ต่อเนื่อง

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

เปิดไฟล์ตัวอย่าง แล้วทำไปพร้อมกันนะครับ ผมจัดไว้ 3 ชีท เริ่มจาก FILTER SORT กรองและเรียงยอดขาย ข้ามไป UNIQUE หาลูกค้าที่ไม่ซ้ำ และปิดท้ายที่ SEQUENCE สร้างลำดับและเดือนทั้งปี ให้คุณเห็นทั้งการกรอง การรวมเงื่อนไข และการสร้างชุดข้อมูลอัตโนมัติ

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

💡 เคล็ดลับ: Dynamic Arrays ใช้ได้เต็มรูปแบบบน Microsoft 365 และ Excel 2021 ถ้าใช้ Excel เวอร์ชันเก่า กด Ctrl+Shift+Enter แบบ Array Formula เก่าได้บางส่วน แต่ฟังก์ชัน FILTER, SORT, UNIQUE จะยังไม่มีครับ

📌 ข้อควรจำ: ตัวอย่างในไฟล์นี้เป็นข้อมูลปี ค.ศ. 2026 และใช้สูตรที่ตรงกับไฟล์จริง เปิดไฟล์แล้วลองปรับตัวเลขเงื่อนไขดูได้เลยครับ

2. FILTER — กรองข้อมูลแบบอัตโนมัติ

เริ่มที่ชีท FILTER SORT ครับ ครึ่งบนคือตารางขายสินค้าของร้านค้าชุมชน มีคอลัมน์ สินค้า, หมวด, ยอดขาย และ ผู้ขาย สมมติว่าคุณอยากเห็นเฉพาะสินค้าที่มียอดขายเกิน 5,000 บาท

วิธีเดิมเราก็ต้องเปิด Filter แล้วเลือกทีละค่า แต่ด้วย FILTER แค่สูตรเดียวจบ

=FILTER(A2:D9,C2:C9>5000)

พารามิเตอร์ตัวแรกคือช่วงข้อมูลที่อยากให้แสดงทั้งแถว ตัวที่สองคือเงื่อนไขที่อิงจากคอลัมน์ ยอดขาย เป็นผลลัพธ์ที่ตอบมาเป็นตารางทั้งคอลัมน์ ตั้งแต่ A ไปถึง D เฉพาะแถวที่ยอดเกิน 5,000 เท่านั้น

สินค้าหมวดยอดขาย (บาท)ผู้ขาย
ข้าวกล้องอาหาร7800วิภา
ปลากระป๋องอาหาร9600สุดา
ชาเขียวเครื่องดื่ม5400วิภา
ไข่ไก่อาหาร12200อนุชา

เห็นไหมครับ 4 แถวที่ผ่านเงื่อนไขถูกดึงออกมาให้ทั้งหมด โดยไม่ต้องลากสูตรแม้แต่เซลล์เดียว นี่คือหัวใจของ spill — ผลลัพธ์ไหลออกมาเองจนเต็มช่วงที่ต้องการ

ถ้าอยากให้เงื่อนไขปรับเปลี่ยนได้โดยไม่ต้องแกะสูตร ก็อ้างอิงไปที่เซลล์ที่พิมพ์เกณฑ์ไว้ เช่น ใส่ตัวเลข 5000 ไว้ที่ F1 แล้วเปลี่ยนสูตรเป็น =FILTER(A2:D9,C2:C9>F1) แค่นี้เวลาเปลี่ยนเกณฑ์ก็แค่พิมพ์ตัวเลขใหม่ใน F1 ผลลัพธ์จะเด้งตามทันที ดีกว่าค่าเลขตายตัวที่ต้องมาแก้ในสูตรทุกครั้งเลยครับ

แล้วถ้าอยากกรองเฉพาะหมวดเดียวล่ะครับ เช่น เอาเฉพาะเครื่องดื่ม สูตรก็คือ

=FILTER(A2:D9,B2:B9="เครื่องดื่ม")

ส่วนใครอยากกรอง หลายเงื่อนไขพร้อมกัน ให้คูณเงื่อนไขด้วยเครื่องหมายดอกจันในวงเล็บ เช่น อยากได้สินค้าประเภทอาหารที่ยอดเกิน 3,000 บาท

=FILTER(A2:D9,(C2:C9>3000)*(B2:B9="อาหาร"))

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

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

=FILTER(A2:D9,C2:C9>99999,"ไม่พบข้อมูล")

ถ้าครั้งไหนไม่มีสินค้าตัวไหนยอดเกินเกณฑ์ ก็จะขึ้นคำว่า ไม่พบข้อมูล แทน error #CALC! จึงเหมาะกับไฟล์รายงานที่ต้องมีคนมาเปิดทุกวัน แล้วไม่อยากให้เห็นเครื่องหมาย error ขวางตา

💡 เคล็ดลับ: เงื่อนไขใน FILTER ใช้เครื่องหมาย * คูณกันแปลว่า และ (ทุกเงื่อนไขต้องจริง) ส่วนถ้าอยากได้ หรือ ให้ใช้เครื่องหมาย + เช่น (เงื่อนไข1)+(เงื่อนไข2) ครับ

3. SORT และ SORTBY — เรียงลำดับให้อัตโนมัติ

ถัดมาในชีทเดียวกันครับ หลังกรองข้อมูลออกมาได้แล้ว สิ่งที่คนส่วนใหญ่ทำต่อคือการเรียงลำดับ ไม่ว่าจะยอดจากมากไปน้อย หรือชื่อจาก ก ไป ฮ

SORT รับข้อมูลมาหนึ่งช่วงแล้วเรียงให้เลย ตัวอย่างเรียงตารางทั้งหมดตามคอลัมน์ ยอดขาย (คอลัมน์ที่ 3) จากมากไปน้อย

=SORT(A2:D9,3,-1)

ตัวเลข 3 คือคอลัมน์ที่ใช้เรียง และ -1 คือจากมากไปน้อย (1 คือจากน้อยไปมาก) ผลลัพธ์คือ ไข่ไก่ 12,200 มาก่อน ตามด้วยปลากระป๋อง ข้าวกล้อง ไล่ลงไปจนถึงมาม่า 1,800

อยากเรียงตามชื่อจาก ก ไป ฮ ก็เปลี่ยนแค่เลขคอลัมน์เป็นคอลัมน์แรก เช่น =SORT(A2:D9,1,1) ได้ตารางที่เรียงชื่อสินค้าตามลำดับพจนานุกรม จะเรียงกี่คอลัมน์ต่อเนื่องกันก็ได้ เช่น =SORT(A2:D9,{3,1},{-1,1}) แปลว่าเรียงยอดจากมากไปน้อย แล้วต่อด้วยเรียงชื่อจากน้อยไปมากในกลุ่มที่ยอดเท่ากัน

ถ้าอยากได้ทั้งกรองและเรียงในสูตรเดียว ก็ซ้อนกันได้เลย

=SORT(FILTER(A2:D9,C2:C9>5000),3,-1)

FILTER กรองยอดเกิน 5,000 ออกมาก่อน แล้ว SORT เอามาเรียงยอดจากมากไปน้อยให้อีกรอบ เรียกว่าจบงานในเซลล์เดียวเต็มๆ

ส่วน SORTBY ต่างจาก SORT ตรงที่เรียงตามคอลัมน์นอกช่วงข้อมูลโดยไม่ต้องรวมคอลัมน์นั้นเข้าไปด้วย เช่น

=SORTBY(A2:D9,C2:C9,-1)

คือเอา A ถึง D มาเรียงตามค่าในคอลัมน์ C (ยอดขาย) ซึ่งอยู่ข้างนอกช่วงที่แสดง ลองเปิดไฟล์ดูผลลัพธ์ทั้ง SORT กับ SORTBY ในคอลัมน์ที่ผมเตรียมไว้ให้ จะเห็นว่าได้ตารางเหมือนกัน แต่ท่าทางการเขียนต่างกันเล็กน้อย

⚠️ ข้อควรระวัง: ระวังอย่าให้ช่วงการเรียงกับช่วงผลลัพธ์ทับซ้อนกันในจุดที่ทำให้ข้อมูลวน เพราะถ้าเผลอ กดล่าช้ามักได้ #REF! หรือข้อมูลเพี้ยน ให้เผื่อพื้นที่ว่างไว้ให้สูตร spill ครับ

💡 เคล็ดลับ: ลองจับ SORT กับ FILTER ต่อกันเป็นลูกโซ่ดูครับ เช่น =SORT(FILTER(A2:D9,C2:C9>5000),3,-1) ได้ผลลัพธ์ที่ทั้งกรองและเรียงในครั้งเดียว เหมาะกับรายงานที่อยากได้ตารางพร้อมใช้โดยไม่ต้องแตะข้อมูลต้นฉบับ

4. UNIQUE — ดึงค่าที่ไม่ซ้ำแบบฉับไว

มาที่ชีท UNIQUE ครับ โจทย์นี้ตรงใจฝ่ายการตลาดและฝ่ายขาย คืออยากรู้ว่ามีลูกค้ากี่รายที่สั่งสินค้า และมีสินค้ากี่หมวด โดยไม่ต้องนับซ้ำ

สมมติตารางมีบันทึกการสั่งซื้อหลายสิบแถว และชื่อลูกค้าซ้ำกันหลายรอบ อยากได้รายชื่อที่ไม่ซ้ำสักครั้งเดียว

=UNIQUE(A2:A9)

สูตรนี้จะกวาดคอลัมน์ A แล้วตอบชื่อลูกค้าทุกรายที่ไม่ซ้ำออกมา ทั้งสมชาย วิภา อนุชา สุดา เอามาใช้ทำรายชื่อสมาชิกหรือทำสรุปได้ทันที มันสบายมากตรงที่คุณไม่ต้องไปใช้ Remove Duplicates ที่จะไปแก้ข้อมูลต้นฉบับ เพราะ UNIQUE แค่คัดลอกค่ามาแสดง โดยไม่แตะข้อมูลเดิมแม้แต่นิดเดียว

ใช้กับหมวดสินค้าได้เหมือนกัน

=UNIQUE(C2:C9)

ได้ค่า เครื่องดื่ม และ อาหาร แบบไม่ซ้ำ ใช้คู่กับ COUNTIF ก็ได้ผลลัพธ์ว่าลูกค้าแต่ละคนสั่งกี่ครั้ง เช่น

=COUNTIF(A2:A9,A2)

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

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

อยากให้รายชื่อไม่ซ้ำออกมาแบบเรียงสวยๆ ก็จับ UNIQUE ไปใส่ใน SORT ได้เลย

=SORT(UNIQUE(A2:A9))

UNIQUE ดึงชื่อที่ไม่ซ้ำออกมา แล้ว SORT เรียงจาก ก ไป ฮ ให้อัตโนมัติ เหมาะทำรายชื่อในดรอปดาวน์หรือรายงานสรุปที่อยากให้อ่านง่าย เรียกว่าใช้งานเป็นลูกโซ่ต่อกันแบบไม่จำกัด

ส่วนใครอยากให้รายชื่อที่ไม่ซ้ำวางในแนวนอนแทนแนวตั้ง ก็ใช้ TRANSPOSE ห่อไว้ได้

=TRANSPOSE(UNIQUE(C2:C9))

ได้หมวดสินค้าแบบไม่ซ้ำวางเรียงกันในแถวเดียว เหมาะทำหัวตารางหรือป้ายกำกับคอลัมน์หลายชุดให้สวยและอัตโนมัติโดยไม่ต้องคัดลอกทีละเซลล์

💡 เคล็ดลับ: UNIQUE มีพารามิเตอร์ตัวที่สาม UNIQUE(ช่วง,...,TRUE) ให้ดึงเฉพาะค่าที่ซ้ำกันมาแทน แต่เวอร์ชันเก่าบางตัวอาจไม่รองรับ ถ้าอยากได้ค่าที่ซ้ำ ลองใช้ COUNTIF คู่กับ FILTER ดูก็ได้ครับ

📌 ข้อควรจำ: UNIQUE ไม่ลบข้อมูลต้นฉบับ มันแค่สร้างชุดค่าใหม่ที่ไม่มีซ้ำต่างหาก จึงปลอดภัยต่อข้อมูลจริงเสมอ ไม่เหมือน Remove Duplicates ที่แก้ไฟล์ต้นทางครับ

5. SEQUENCE — สร้างลำดับและวันที่แบบอัตโนมัติ

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

โครงสร้างคือ

=SEQUENCE(จำนวนแถว, จำนวนคอลัมน์, ค่าเริ่ม, ขั้น)

ตัวอย่างสร้างเลข 1 ถึง 10 ลงแนวตั้ง

=SEQUENCE(10)

ได้คอลัมน์ตัวเลข 1-10 ไหลลงมาเลย ส่วนถ้าอยากได้เมทริกซ์ 2 แถวคูณ 5 คอลัมน์

=SEQUENCE(2,5)

จะได้เลข 1 ถึง 10 กระจายเป็นตาราง 2×5 เต็มทั้งช่วง

ส่วนที่คนทำงานบัญชีชอบคือการสร้างวันที่ทั้งปีด้วยสูตรเดียว อยากได้วันแรกของทุกเดือนตั้งแต่เดือนมกราคมถึงธันวาคม 2026

=DATE(2026,SEQUENCE(12),1)

SEQUENCE(12) สร้างเลข 1 ถึง 12 มาแทนเดือน แล้ว DATE ประกอบเป็นวันที่ 1 ของแต่ละเดือน ได้ 1 ม.ค. 2026 ไปจนถึง 1 ธ.ค. 2026 ครบทั้ง 12 เดือนในสูตรเดียว ไม่ต้องพิมพ์ทีละเดือน แล้วยังมาถึงการสร้างลำดับปีด้วย

=SEQUENCE(4,1,2026,1)

ได้ปี 2026 2027 2028 2029 เหมาะทำหัวคอลัมน์หลายปีในไฟล์สรุป

จะเห็นว่า SEQUENCE เป็นเหมือนโรงงานผลิตตัวเลขชนิดหนึ่ง ยิ่งจับคู่กับ DATE หรือฟังก์ชันอื่นก็ยิ่งทรงพลัง เช่น เอาไปสร้างเลขที่บิลอัตโนมัติ หรือทำแถวเป้าหมายรายเดือนทั้งปีได้ในครั้งเดียว และถ้านับย้อนกลับก็ทำได้ด้วยการใส่ขั้นเป็นค่าลบ

ตัวอย่างฝึกบิลแบบเลขต่อเนื่อง อยากได้เลข 001 ถึง 010 ก็รวม SEQUENCE เข้ากับ TEXT ได้แบบนี้

=TEXT(SEQUENCE(10),"000")

ได้เลข 001 002 003 ไล่ไปจนถึง 010 อัตโนมัติ ใช้ทำเลขที่ใบเสร็จหรือลำดับรายการได้ทันทีโดยไม่ต้องพิมพ์ทีละตัว และถ้าอยากสร้างวันที่ครบทุกเดือนแบบมีวันหยุดด้วย ก็เอา SEQUENCE ไปจับคู่กับ WORKDAY หรือ NETWORKDAYS ได้ต่อเนื่องอีกชั้นหนึ่ง

⚠️ ข้อควรระวัง: ถ้าช่วงผลลัพธ์ของ SEQUENCE หรือ Dynamic Array ไปชนกับข้อมูลที่มีอยู่แล้ว จะเกิด error #SPILL! ก็แค่ลบหรือย้ายข้อมูลที่ขวางออก ให้มีพื้นที่ว่างพอให้ค่าหล่นลงมาเท่านั้นเองครับ

6. ข้อควรระวังเรื่อง spill และ #SPILL!

การจะใช้ Dynamic Arrays ให้ราบรื่น สิ่งที่ต้องเข้าใจมากที่สุดคือเรื่องของ spill range ครับ แปลว่าพื้นที่ว่างที่ผลลัพธ์จะไหลลงมา

ถ้าพื้นที่นั้นมีข้อมูลอะไรบังอยู่ Excel จะไม่กล้าเขียนทับ และจะขึ้น error ว่า

#SPILL!

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

อีกเรื่องที่ควรรู้คือ เราไม่ควรพิมพ์หรือลากสูตรเองทับลงไปในบริเวณที่กำลัง spill เพราะมันจะตัดการทำงานของ Dynamic Array ทันที ถ้าจะแก้ก็แก้เฉพาะสูตรที่เซลล์บนสุดตัวเดียวเท่านั้น แล้วให้ Excel กระจายผลลัพธ์ส่วนที่เหลือให้เอง

ลองเปิดชีท SEQUENCE ในไฟล์ตัวอย่างดูครับ ถ้าคุณลากสูตรทับลงไปในพื้นที่ที่ค่าหล่นอยู่ Excel จะขึ้น #SPILL! ทันที เพราะมันพยายามจะเขียนทับผลลัพธ์ของตัวเอง ซึ่งเป็นสิ่งที่ Dynamic Array ไม่อนุญาตโดยดี พอเห็นแบบนี้จะเข้าใจเลยว่าทำไมต้องเว้นที่ว่างให้ผลลัพธ์หล่นลงมาโดยไม่มีอะไรขวาง

อีกจุดที่หลายคนงง คือผลลัพธ์แบบ spill จะอ้างอิงด้วยสัญลักษณ์แฮชต่อท้าย เช่น E3# หมายถึงทั้งช่วงที่เริ่มจาก E3 เป็นต้นไป ใช้อ้างอิงทั้งก้อนข้อมูลที่กรองออกมาได้ในสูตรอื่น เช่น =SUM(F3#) รวมยอดขายทั้งก้อนที่ FILTER คัดออกมาได้ทันที แม้ไม่รู้ว่าจะมีกี่แถว นี่คือการอ้างอิงช่วงแบบไดนามิกที่ยืดหยุ่นสุดๆ

นอกจากนี้การกรองที่อ้างอิงทั้งช่วงแบบนี้ยังทำงานต่อเนื่องกับพารามิเตอร์อื่นได้ เช่น เอาไปครอบ IFERROR เพื่อกันข้อผิดพลาด หรือผูกกับ SUMIFS เพื่อสรุปยอดเฉพาะกลุ่มตามเงื่อนไข ยิ่งผูกกันหลายชั้นเท่าไหร่ ไฟล์ก็ยิ่งทำงานแทนคุณได้มากเท่านั้น ถือเป็นก้าวที่สำคัญสำหรับคนที่อยากยกระดับสูตรในไฟล์จริง

📌 ข้อควรจำ: ถ้าเจอ #SPILL! อย่าตกใจ มันไม่ใช่สูตรผิด แต่มันคือพื้นที่ไม่พอต่างหาก เปิดไฟล์ตัวอย่างแล้วลองลบข้อมูลในช่องที่ขวางดู แล้วจะเห็นว่าสูตรกลับมาทำงานเองทันทีครับ

7. สถานการณ์งานจริง — ประยุกต์รวมกันทั้งชุด

สถานการณ์ที่ 1: ฝ่ายขายสรุปรายเดือน

อยากได้ตารางสินค้าที่มียอดขายเกินเกณฑ์ 5,000 บาท เรียงจากมากไปน้อย โดยไม่ต้องไปกด Filter และ Sort ซ้ำๆ ใช้

=SORT(FILTER(A2:D9,C2:C9>5000),3,-1)

จบในเซลล์เดียว พร้อมอัปเดตเองเมื่อเพิ่มข้อมูลใหม่

สถานการณ์ที่ 2: ฝ่ายการตลาดดึงรายชื่อลูกค้า

อยากได้รายชื่อลูกค้าที่ไม่ซ้ำมาทำรายชื่อส่งโปรโมชัน ใช้ UNIQUE ดึงคอลัมน์ชื่อออกมา แล้วใช้ COUNTIF นับความถี่การซื้อ เพื่อจัดกลุ่มลูกค้าประจำกับลูกค้าใหม่

สถานการณ์ที่ 3: ฝ่ายบัญชีสร้างปฏิทินทั้งปี

อยากได้วันแรกของทุกเดือนทั้งปีเพื่อทำงบรายเดือน ใช้

=DATE(2026,SEQUENCE(12),1)

สร้าง 12 แถวในครั้งเดียว และใช้ SEQUENCE สร้างปีที่คาดการณ์ไปข้างหน้าเป็นหัวคอลัมน์หลายปี

สถานการณ์ที่ 4: ฝ่ายผลิตทำตารางเป้าหมายรายวัน

ใช้ SEQUENCE สร้างลำดับวันที่ของทั้งเดือนทีละวัน แล้วจับคู่กับ SUMIFS หรือ FILTER เพื่อให้แดชบอร์ดผลผลิตอัปเดตตามวันที่ทุกวันแบบอัตโนมัติ

สถานการณ์ที่ 5: ฝ่ายคลังเช็คสต็อกสินค้าหมุนเวียน

อยากเห็นเฉพาะสินค้าที่มียอดขายต่ำกว่าเกณฑ์เพื่อเข้าไปจัดโปรโมชัน ใช้ FILTER กับยอดขาย และเรียงยอดจากน้อยไปมากด้วย SORT เพื่อให้เห็นสินค้าที่ต้องจัดการก่อนเป็นอันดับแรก

8. สรุป

มาถึงตรงนี้คุณน่าจะเห็นแล้วว่า Dynamic Arrays เปลี่ยนวิธีทำงานกับข้อมูลไปอย่างสิ้นเชิงครับ

  • FILTER กรองข้อมูลตามเงื่อนไข อัตโนมัติ ไม่ต้องแตะปุ่ม Filter
  • SORT / SORTBY เรียงลำดับ ชัดเจนทั้งตัวข้อมูลและคอลัมน์อ้างอิง
  • UNIQUE ดึงค่าที่ไม่ซ้ำโดยไม่แก้ข้อมูลต้นฉบับ
  • SEQUENCE สร้างลำดับตัวเลขและวันที่ทีละชุดใหญ่
  • spill + #SPILL! หลักการเรื่องพื้นที่ว่างที่ต้องเข้าใจก่อนใช้

ก่อนจบผมอยากเน้นเรื่องการทำงานเป็นทีมของทั้งชุดอีกครั้ง เพราะพลังที่แท้จริงของ Dynamic Arrays ไม่ได้อยู่ที่ฟังก์ชันเดี่ยวๆ แต่อยู่ที่การซ้อนเข้าด้วยกัน เช่น SORT(FILTER(…)), SORT(UNIQUE(…)), ไปจนถึง SEQUENCE คูณกับ DATE เราสร้างไฟล์รายงานที่กรองเอง เรียงเอง และสร้างชุดข้อมูลเองได้โดยไม่ต้องแตะข้อมูลต้นทางแม้แต่นิดเดียว ยิ่งข้อมูลโตแค่ไหน ยิ่งเห็นประโยชน์ชัดขึ้นเท่านั้นครับ

เชิงปฏิบัติแล้ว เริ่มจากหนึ่งฟังก์ชันที่คุณใช้บ่อยที่สุดก่อน เช่น FILTER สำหรับคนขาย แล้วค่อยฝึกซ้อนกับ SORT และ UNIQUE เมื่อชิน ค่อยๆ เพิ่มทีละชั้นจะรู้สึกไม่กดดัน และสิ่งที่เรียนรู้ก็เอาไปใช้จริงได้ทันทีในวันเดียวกัน

จุดที่อยากฝากไว้คือ Dynamic Arrays ทำงานแบบเรียลไทม์ เมื่อข้อมูลต้นทางเปลี่ยน ผลลัพธ์ก็เปลี่ยนตาม ไม่ต้องมานั่งรีเฟรชหรือลากสูตรใหม่ และการซ้อนสูตร เช่น SORT กับ FILTER เข้าด้วยกัน จะทำให้คุณเขียนงานที่แต่เดิมต้องทำหลายขั้นตอนจบภายในเซลล์เดียว สิ่งเดียวที่ต้องมีคือพื้นที่ว่างให้ผลลัพธ์ได้หล่นลงมาเท่านั้น

เคล็ดลับอีกอย่างคืออย่ากลัวการซ้อนสูตรหลายชั้น เพราะแต่ละชั้นแยกอ่านออกมาเป็นคำสั่งเดียวได้เสมอ เช่น อ่าน SORT(FILTER(…)) ได้ว่า กรองก่อน แล้วค่อยเรียง ดังนั้นถ้าเห็นสูตรยาวๆ ให้แยกส่วนทำความเข้าใจทีละชิ้น จะไม่งงเลยครับ ยิ่งบวกกับเรื่องการอ้างอิงแบบ E3# ที่จะเจอในบทความถัดๆ ไป เทคนิคกลุ่มนี้จะกลายเป็นอาวุธหลักของคุณในทุกไฟล์งาน

เปิดไฟล์ตัวอย่างแล้วลองไล่เล่นให้ครบทั้ง 3 ชีทดูนะครับ เริ่มจาก FILTER SORT กรองและเรียงยอดขาย ข้ามไป UNIQUE ดึงลูกค้าไม่ซ้ำ และปิดท้ายที่ SEQUENCE สร้างลำดับและเดือนทั้งปี ลองลบข้อมูลในช่องที่ขวาง spill เพื่อดูว่า #SPILL! หายไปยังไง แล้วลองเปลี่ยนเงื่อนไขใน FILTER ดู ผลลัพธ์จะขยับตามให้ทันที

ยิ่งถ้าคุณเริ่มซ้อนสูตรตั้งแต่ตอนนี้ เช่น กรองแล้วเรียง หรือดึงชื่อไม่ซ้ำแล้วเรียงต่อ ไฟล์งานของคุณจะกลายเป็นเหมือนแดชบอร์ดที่ตอบเองได้ทุกครั้งที่ข้อมูลเปลี่ยน ไม่ต้องมาเสียเวลาเปิดปิด Filter หรือคัดลอกด้วยมือซ้ำแล้วซ้ำเล่า

บทความหน้าเราจะได้รู้จัก การอ้างอิงขั้นสูง — INDIRECT, OFFSET, ADDRESS ที่จะทำให้สูตรของคุณอ้างอิงตำแหน่งแบบยืดหยุ่นถึงขั้นไม่มีที่ติ เจอกันครับ! 😊

Similar Posts

  • Table: ทำไมต้องใช้และข้อดีที่ควรรู้

    1. ผมใช้แค่พิมพ์ข้อมูลลงไปก็พอแล้วนี่ — ทำไมต้อง Table? เป็นคำถามที่ผมได้ยินบ่อยมากครับ — โดยเฉพาะจากคนที่ใช้ Excel ทำงานทุกวันอยู่แล้ว แต่ไม่เคยใช้ฟีเจอร์ Table (หรือที่เรียกว่า Excel Table / Format as Table) มาก่อน ลองนึกภาพว่าเราเปิดร้านกาแฟเล็กๆ แห่งหนึ่ง แล้วมีสมุดจดบันทึกยอดขายรายวัน: ถ้าเปลี่ยนจากสมุดจดมาเป็น Excel ธรรมดา (แค่พิมพ์ลงไปเฉยๆ) — ก็เหมือนมีสมุดดิจิทัลที่พิมพ์สวยกว่า ลบแล้วเขียนใหม่ได้ ไม่เลอะ ไม่เปียกฝน แต่การเปลี่ยนจาก Excel ธรรมดา มาเป็น Table — มันเหมือนกับการเปลี่ยนจากสมุดจด มาเป็นระบบจัดการร้านที่มีเครื่องคิดเลขในตัว มีระบบเตือนของใกล้หมด มีปุ่มกดปุ่มเดียวสรุปยอดทั้งเดือนเลยครับ! นี่คือสิ่งที่เราจะพูดถึงในบทความนี้ — 5 ข้อดีของ Table ที่จะทำให้คุณร้อง อ้อ! และอาจเปลี่ยนวิธีทำงาน Excel ของคุณไปตลอดกาลเลยล่ะครับ เปิดไฟล์ตัวอย่างแล้วทำไปพร้อมกันเลยนะครับ — ในไฟล์มีชีทตัวอย่างที่เปรียบเทียบ…

  • สีและเส้นขอบใน Excel: ทำให้ข้อมูลอ่านง่ายขึ้น ไม่ต้องให้หัวหน้าตำหนิ

    1. ข้อมูลถูกทุกอย่าง แต่หัวหน้าบอกว่าดูไม่รู้เรื่อง เคยไหมครับ — คุณนั่งป้อนข้อมูลใน Excel อย่างตั้งใจ ตรวจสอบตัวเลขทุกหลัก พิมพ์ SUM ได้ถูกต้อง 100% แต่พอส่งให้หัวหน้าดู — เค้าบอกว่า “มันดูรกไปหน่อยนะ ช่วยทำให้อ่านง่ายหน่อย” ไม่ใช่ความผิดคุณเลยครับ — เพราะการอ่านข้อมูลที่เป็นตัวเลขล้วนๆ ในตารางสี่เหลี่ยมขาวดำมันเหนื่อยสายตามาก! วันนี้เรามาแก้ปัญหานี้กัน! ด้วยเครื่องมือที่ง่ายที่สุดแต่มือใหม่หลายคนมองข้าม — สีพื้นหลัง (Fill Color) และ เส้นขอบ (Borders) — สองสิ่งนี้แหละที่จะเปลี่ยนตารางบ้านๆ ของคุณให้ดูโปรขึ้นมาทันที! ข้อดีของการใช้สีและเส้นขอบ: วันนี้ผมจะพาคุณไปดูตั้งแต่พื้นฐาน — วิธีใส่สี วิธีใส่เส้นขอบ เทคนิคต่างๆ และตัวอย่างจริงที่เอาไปใช้ได้ทันทีครับ! 2. Fill Color — ใส่สีพื้นหลังให้เซลล์ แบบที่มือใหม่ทำได้ Fill Color คือการใส่สีพื้นหลังให้เซลล์หรือช่วงข้อมูลที่เลือกครับ — เป็นวิธีที่เร็วที่สุดในการทำให้ตารางของคุณดูมีชีวิตชีวา! วิธีใส่สีพื้นหลัง หรือใช้ทางลัด: หลังจากเลือกเซลล์แล้ว…

  • Conditional Formatting 101: ทำให้ข้อมูลเด่นขึ้นมาทันที

    1. ข้อมูลเป็นร้อยแถว… จะหาของยังไง? เคยมั้ยครับ — คุณเปิดไฟล์ Excel ที่มีข้อมูลเป็นร้อยแถว แล้วต้องหาว่า: การมานั่งเลื่อนดูทีละแถวคงใช้เวลานาน แถมยังอาจมองข้ามข้อมูลสำคัญไปด้วย Conditional Formatting หรือ การจัดรูปแบบตามเงื่อนไข คือฟีเจอร์ที่จะช่วยให้ Excel เปลี่ยนสี เปลี่ยนฟอนต์ หรือเพิ่มไอคอนให้เซลล์ โดยอัตโนมัติ ตามเงื่อนไขที่คุณกำหนด! ข้อดีของ Conditional Formatting: เปิดไฟล์ตัวอย่างมาทำไปพร้อมกันนะครับ — มีชีทตัวอย่างพร้อมข้อมูลให้ลองทำตามทุกหัวข้อ จะได้เห็นภาพว่าการใช้ Conditional Formatning เปลี่ยนชีวิตคนทำงานยังไง! 2. Conditional Formatting คืออะไร? Conditional Formatting คือฟีเจอร์ที่ให้คุณ กำหนดรูปแบบของเซลล์ตามเงื่อนไข เช่น: เงื่อนไขที่ Conditional Formatting ทำได้ ประเภท เงื่อนไข ตัวอย่างการใช้งาน ตัวเลข มากกว่า, น้อยกว่า, เท่ากับ, ระหว่าง ยอดขาย >…

  • Excel คืออะไร? เปิดครั้งแรกต้องรู้อะไรบ้าง

    เคยเปิด Excel แล้วมึนกับช่องสี่เหลี่ยมเต็มจอไหมครับ? ไม่ต้องกลัว — บทความนี้จะพามือใหม่รู้จัก Excel ตั้งแต่เริ่ม ว่าแต่ละส่วนคืออะไร กดตรงไหนก่อน เซฟยังไง ให้พร้อมทำงานทันที Excel คืออะไรใน 1 ประโยค? บอกให้สั้นที่สุดเลยนะครับ — Excel คือโปรแกรมตารางคำนวณ (Spreadsheet) ที่เอาไว้จดข้อมูล คำนวณตัวเลข ทำกราฟ และสรุปผล ให้เราไม่ต้องมานั่งคิดด้วยเครื่องคิดเลขหรือทำรายงานด้วยมืออีกต่อไป คนส่วนใหญ่เข้าใจว่า Excel คือ “โปรแกรมสี่เหลี่ยมๆ ที่ใช้ทำบัญชี” ซึ่งก็ไม่ผิดครับ แต่มันทำได้มากกว่านั้นเยอะ เปิด Excel ครั้งแรก — จะเจออะไรบ้าง? ถ้าคุณเพิ่งเปิด Excel ขึ้นมาครั้งแรก สิ่งแรกที่เห็นคือ หน้าจอสีขาวๆ มีตารางสี่เหลี่ยมเต็มไปหมด ซึ่งนี่คือ Worksheet หรือแผ่นงานนั่นเองครับ มาดูส่วนประกอบหลักๆ ที่ต้องรู้จักกัน: 1. Ribbon — แถบเครื่องมือชุดใหญ่ Ribbon คือแถบด้านบนสุดของ…

  • ฟังก์ชันวันที่และเวลา — DATEDIF, EOMONTH, WORKDAY, NETWORKDAYS

    1. วันที่ใน Excel ไม่ใช่แค่ตัวเลขธรรมดา บทความที่แล้ว เราเพิ่งไขความลับของฟังก์ชันข้อความกันไป คราวนี้ผมจะพาคุณมาดูอีกมิติหนึ่งที่คนทำงานไทยเจอทุกวัน นั่นคือ วันที่และเวลา ครับ ลองนึกภาพดูนะครับ อยากรู้ว่าพนักงานคนนี้อายุงานกี่ปีแล้ว อยากรู้ว่าบิลครบกำหนดชำระตรงกับสิ้นเดือนพอดีหรือเปล่า หรืออยากรู้ว่างานนี้ถ้าเริ่มวันจันทร์แล้วต้องใช้เวลากี่วันทำการถึงจะเสร็จก่อนเสาร์-อาทิตย์ งานพวกนี้ล้วนแต่นับวันเป็นหลัก แต่ถ้าคุณนับด้วยมือหรือคิดในใจทีละแถว รับรองพลาดแน่ และยิ่งข้อมูลเยอะก็ยิ่งพัง ที่สำคัญคือ Excel ไม่ได้มองวันที่เป็นแค่ตัวหนังสือ แต่มันแปลงวันที่ทุกวันให้เป็น serial number — ตัวเลขที่ใช้คำนวณได้จริง เช่น 1 มกราคม 1900 คือเลข 1 และเพิ่มขึ้นวันละ 1 ตัวเลขนี้แหละที่ทำให้เราบวก ลบ เปรียบเทียบวันได้ดั่งตัวเลขทั่วๆ ไป ชุดฟังก์ชันที่เราจะใช้กันวันนี้มีดังนี้ครับ ให้เปิดไฟล์ตัวอย่าง แล้วทำตามไปด้วยกันจะดีมากเลยครับ ผมจัดไว้ 3 ชีท เริ่มจากวางแผนงานด้วย WORKDAY ไปนับอายุงานด้วย DATEDIF และปิดท้ายที่งวดบิลกับ EOMONTH ผมเตรียมตัวอย่างให้ครบทั้งการบวกวัน การนับวันระหว่างช่วง และการจัดการงวด เพื่อให้คุณเห็นภาพการประยุกต์ใช้งานจริงในแต่ละสายงาน 💡…

  • Text to Columns — แยกข้อมูลในเซลล์อย่างชาญฉลาด Delimited, Fixed Width, Date Formats

    1. ปัญหาที่คนทำงานทุกคนเคยเจอ — ข้อมูลมากองรวมกันในคอลัมน์เดียว เคยไหมครับ? คุณโหลดไฟล์จากระบบเก่ามา แล้วเจอชื่อ-นามสกุลอยู่ในคอลัมน์เดียวกันทั้ง 500 แถว — “นายสมชาย ใจดี”, “นางสาววิไล รักเรียน”, “Mr. John Smith” — เรียงกันเป็นพรืด! หรือเจอที่อยู่ที่เขียนยาวเป็นพรืดในเซลล์เดียว — “12/34 ซอยสุขุมวิท 22 ถนนสุขุมวิท แขวงคลองเตย เขตคลองเตย กรุงเทพฯ 10110” — แล้วคุณต้องแยกเป็นคอลัมน์ ถนน, แขวง, เขต, รหัสไปรษณีย์ หรือข้อมูลวันที่ที่ระบบส่งมาเป็น “20260715” หรือ “15/07/2026” แต่ Excel ไม่ยอมอ่านเป็นวันที่ซักที! ปัญหาพวกนี้มีทางออกครับ — และมันชื่อว่า Text to Columns! Text to Columns เป็นฟีเจอร์ใน Excel ที่ช่วย แยกเนื้อหาในเซลล์เดียวออกเป็นหลายคอลัมน์…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.