แนวทางและตัวอย่างของสูตรอาร์เรย์
นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel for iPhone

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

เริ่มต้นด้วยการอัปเดต สําหรับ Microsoft 365 เดือนกันยายน 2018 สูตรใดๆ ที่สามารถส่งกลับหลายผลลัพธ์จะสปิลล์ผลลัพธ์เหล่านั้นโดยอัตโนมัติไม่ว่าจะลงหรือข้ามไปยังเซลล์ข้างๆ การเปลี่ยนแปลงลักษณะการทํางานนี้ยังมาพร้อมกับ ฟังก์ชันอาร์เรย์แบบไดนามิกใหม่หลายฟังก์ชัน สูตรอาร์เรย์แบบไดนามิก ไม่ว่าจะใช้ฟังก์ชันที่มีอยู่หรือฟังก์ชันอาร์เรย์แบบไดนามิก จะต้องใส่ลงในเซลล์เดียวเท่านั้น แล้วยืนยันโดยการกด Enter ก่อนหน้านี้ สูตรอาร์เรย์ดั้งเดิมจําเป็นต้องเลือกช่วงผลลัพธ์ทั้งหมดก่อน แล้วยืนยันสูตรด้วย Ctrl+Shift+Enter ซึ่งโดยทั่วไปเรียกว่าสูตร CSE

คุณสามารถใช้สูตรอาร์เรย์เพื่อทํางานที่ซับซ้อนเช่น:

  • สร้างชุดข้อมูลตัวอย่างอย่างรวดเร็ว

  • นับจํานวนอักขระที่อยู่ในช่วงของเซลล์

  • รวมเฉพาะตัวเลขที่ตรงตามเงื่อนไขบางอย่าง เช่น ค่าต่ําสุดในช่วง หรือตัวเลขที่อยู่ระหว่างขอบเขตบนและขอบเขตล่าง

  • รวมค่า n ทุกตัวในช่วงของค่า

ตัวอย่างต่อไปนี้แสดงวิธีสร้างสูตรอาร์เรย์หลายเซลล์และสูตรอาร์เรย์เซลล์เดียว ในกรณีที่เป็นไปได้ เราได้รวมตัวอย่างกับฟังก์ชันอาร์เรย์แบบไดนามิกบางฟังก์ชัน รวมถึงสูตรอาร์เรย์ที่มีอยู่ที่ใส่เป็นอาร์เรย์แบบไดนามิกและอาร์เรย์ดั้งเดิม

ดาวน์โหลดตัวอย่างของเรา

ดาวน์โหลดเวิร์กบุ๊กตัวอย่างที่มีตัวอย่างสูตรอาร์เรย์ทั้งหมดในบทความนี้

แบบฝึกหัดนี้จะแสดงวิธีการใช้สูตรอาร์เรย์หลายเซลล์และสูตรอาร์เรย์เซลล์เดียวเพื่อคํานวณชุดของตัวเลขยอดขาย ขั้นตอนชุดแรกจะใช้สูตรหลายเซลล์เพื่อคํานวณชุดผลรวมย่อย ชุดที่สองจะใช้สูตรเซลล์เดียวในการคํานวณผลรวมทั้งหมด

  • สูตรอาร์เรย์หลายเซลล์

    ฟังก์ชันอาร์เรย์หลายเซลล์ในเซลล์ H10 =F10:F19*G10:G19 เพื่อคํานวณจํานวนรถยนต์ที่ขายตามราคาต่อหน่วย

  • ต่อไปนี้คือการคํานวณ Total Sales of coupes และ sedans สําหรับพนักงานขายแต่ละคนโดยการใส่ =F10:F19*G10:G19 ในเซลล์ H10

    เมื่อคุณกด Enter คุณจะเห็นผลลัพธ์หกลงในเซลล์ H10:H19 โปรดสังเกตว่าช่วงสปิลล์จะถูกเน้นด้วยเส้นขอบเมื่อคุณเลือกเซลล์ใดๆ ภายในช่วงสปิลล์ คุณอาจสังเกตเห็นว่าสูตรในเซลล์ H10:H19 เป็นสีเทา สูตรเหล่านั้นมีไว้สําหรับการอ้างอิง เท่านั้น ดังนั้นถ้าคุณต้องการปรับสูตร คุณจะต้องเลือกเซลล์ H10 ที่สูตรหลักอาศัยอยู่

  • สูตรอาร์เรย์เซลล์เดียว

    สูตรอาร์เรย์เซลล์เดียวเพื่อคํานวณผลรวมทั้งหมดด้วย =SUM(F10:F19*G10:G19)

    ในเซลล์ H20 ของเวิร์กบุ๊กตัวอย่าง ให้พิมพ์หรือคัดลอกและวาง =SUM(F10:F19*G10:G19) แล้วกด Enter

    ในกรณีนี้ Excel จะคูณค่าในอาร์เรย์ (ช่วงเซลล์ F10 ถึง G19) แล้วใช้ฟังก์ชัน SUM เพื่อเพิ่มผลรวมเข้าด้วยกัน ผลลัพธ์คือยอดขายรวมทั้งหมด $1,590,000

    ตัวอย่างนี้แสดงให้เห็นว่าสูตรชนิดนี้มีประสิทธิภาพมากเพียงใด ตัวอย่างเช่น สมมติว่าคุณมีแถวข้อมูล 1,000 แถว คุณสามารถหาผลรวมของข้อมูลบางส่วนหรือทั้งหมดได้โดยการสร้างสูตรอาร์เรย์ในเซลล์เดียวแทนที่จะลากสูตรลงไปตามแถว 1,000 แถว นอกจากนี้ โปรดสังเกตว่าสูตรเซลล์เดียวในเซลล์ H20 จะเป็นอิสระจากสูตรหลายเซลล์ (สูตรในเซลล์ H10 ถึง H19) อย่างสิ้นเชิง นี่คือข้อดีอีกอย่างหนึ่งของการใช้สูตรอาร์เรย์ ซึ่งก็คือความยืดหยุ่น คุณสามารถเปลี่ยนสูตรอื่นๆ ในคอลัมน์ H ได้โดยไม่มีผลกระทบต่อสูตรใน H20 นอกจากนี้ยังอาจเป็นแนวทางปฏิบัติที่ดีที่จะมีผลรวมอิสระเช่นนี้เนื่องจากจะช่วยในการตรวจสอบความถูกต้องของผลลัพธ์ของคุณ

  • สูตรอาร์เรย์แบบไดนามิกยังมีข้อดีเหล่านี้:

    • สอดคล้องกัน    ถ้าคุณคลิกเซลล์ใดๆ จาก H10 ลงมา คุณจะเห็นสูตรเดียวกัน ความสอดคล้องกันนั้นสามารถช่วยรับรองความถูกต้องได้มากขึ้น

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

    • ขนาดไฟล์ที่เล็กลง    คุณสามารถใช้สูตรอาร์เรย์เดียวแทนสูตรขั้นกลางหลายๆ สูตรได้ ตัวอย่างเช่น เวิร์กบุ๊กใช้สูตรอาร์เรย์เดียวในการคำนวณผลลัพธ์ในคอลัมน์ E ถ้าคุณใช้สูตรมาตรฐาน (เช่น =C2*D2, C3*D3, C4*D4…) ตัวอย่างเช่น ตัวอย่างยอดขายรถยนต์ใช้สูตรอาร์เรย์หนึ่งสูตรเพื่อคํานวณผลลัพธ์ในคอลัมน์ ถ้าคุณใช้สูตรมาตรฐาน เช่น =F10*G10, F11*G11, F12*G12 เป็นต้น คุณจะใช้สูตรที่แตกต่างกัน 11 สูตรเพื่อคํานวณผลลัพธ์เดียวกัน นั่นไม่ใช่เรื่องใหญ่อะไร แต่จะเป็นอย่างไรถ้าคุณมีแถวนับพันที่จะรวมทั้งหมด จากนั้นมันสามารถสร้างความแตกต่างได้อย่างมาก

    • ประสิทธิภาพ    ฟังก์ชันอาร์เรย์เป็นวิธีที่มีประสิทธิภาพในการสร้างสูตรที่ซับซ้อน สูตรอาร์เรย์ =SUM(F10:F19*G10:G19) เหมือนกับสูตรนี้: =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19)

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

    • #SPILL! ความผิดพลาด    อาร์เรย์แบบไดนามิกแสดงข้อผิดพลาด #SPILL!ซึ่งบ่งชี้ว่าช่วงน้ําหกที่ต้องการถูกบล็อกด้วยเหตุผลบางอย่าง เมื่อคุณแก้ไขการอุดตัน สูตรจะหกโดยอัตโนมัติ

ค่าคงที่อาร์เรย์เป็นคอมโพเนนต์ของสูตรอาร์เรย์ คุณสร้างค่าคงที่อาร์เรย์โดยการใส่รายการของข้อมูล แล้วใส่วงเล็บปีกกา ({ }) ล้อมรอบรายการด้วยตนเอง ดังนี้:

={1,2,3,4,5} หรือ ={"January","กุมภาพันธ์","March"}

ถ้าคุณแยกรายการโดยใช้เครื่องหมายจุลภาค คุณจะสร้างอาร์เรย์แนวนอน (แถว) ถ้าคุณแยกรายการโดยใช้เครื่องหมายอัฒภาค คุณจะสร้างอาร์เรย์แนวตั้ง (คอลัมน์) เมื่อต้องการสร้างอาร์เรย์แบบสองมิติ ให้คุณคั่นรายการในแต่ละแถวด้วยเครื่องหมายจุลภาค และคั่นแต่ละแถวด้วยเครื่องหมายอัฒภาค

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

  • สร้างค่าคงที่แนวนอน

    ใช้เวิร์กบุ๊กจากตัวอย่างก่อนหน้านี้ หรือสร้างเวิร์กบุ๊กใหม่ เลือกเซลล์ว่างแล้วใส่ =SEQUENCE(1,5) ฟังก์ชัน SEQUENCE สร้างอาร์เรย์ 1 แถวคูณ 5 คอลัมน์เหมือนกับ ={1,2,3,4,5} ผลลัพธ์ต่อไปนี้จะแสดงขึ้น:

    สร้างค่าคงที่อาร์เรย์แนวนอนด้วย =SEQUENCE(1,5) หรือ ={1,2,3,4,5}

  • สร้างค่าคงที่แนวตั้ง

    เลือกเซลล์ว่างที่มีห้องอยู่ข้างใต้ แล้วใส่ =SEQUENCE(5) หรือ ={1; 2; 3; 4; 5} ผลลัพธ์ต่อไปนี้จะแสดงขึ้น:

    สร้างค่าคงที่อาร์เรย์แนวตั้งด้วย =SEQUENCE(5) หรือ ={1; 2; 3; 4; 5}

  • สร้างค่าคงที่สองมิติ

    เลือกเซลล์ว่างที่มีห้องอยู่ทางขวาและข้างใต้ แล้วใส่ =SEQUENCE(3,4) คุณจะเห็นผลลัพธ์ที่ได้ดังนี้

    สร้างค่าคงที่อาร์เรย์ 3 แถว 4 คอลัมน์ด้วย =SEQUENCE(3,4)

    คุณยังสามารถใส่: หรือ ={1,2,3,4; 5,6,7,8; 9,10,11,12} แต่คุณจะต้องใส่ใจกับตําแหน่งที่คุณใส่เครื่องหมายอัฒภาคกับเครื่องหมายจุลภาค

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

ต่อไปนี้เป็นตัวอย่างที่ใช้ค่าคงที่อาร์เรย์เป็นส่วนหนึ่งของสูตรที่ใหญ่ขึ้น ในเวิร์กบุ๊กตัวอย่าง ให้ไปที่ ค่าคงที่ ในเวิร์กชีตสูตร หรือสร้างเวิร์กชีตใหม่

ในเซลล์ D9 เราได้ใส่ =SEQUENCE(1,5,3,1) แต่คุณยังสามารถใส่ 3, 4, 5, 6 และ 7 ในเซลล์ A9:H9 ไม่มีอะไรพิเศษเกี่ยวกับการเลือกหมายเลขนั้นเราเพียงแค่เลือกอย่างอื่นนอกเหนือจาก 1-5 สําหรับความแตกต่าง

ในเซลล์ E11 ให้ใส่ =SUM(D9:H9*SEQUENCE(1,5)) หรือ =SUM(D9:H9*{1,2,3,4,5}) สูตรจะส่งกลับค่า 85

ใช้ค่าคงที่อาร์เรย์ในสูตร ในตัวอย่างนี้ เราใช้ =SUM(D9:H(*SEQUENCE(1,5))

ฟังก์ชัน SEQUENCE สร้างค่าคงที่อาร์เรย์ที่เทียบเท่ากัน {1,2,3,4,5} เนื่องจาก Excel จะดําเนินการกับนิพจน์ที่อยู่ในวงเล็บก่อน องค์ประกอบสององค์ประกอบถัดไปที่เข้ามาเล่นคือค่าของเซลล์ใน D9:H9 และตัวดําเนินการคูณ (*) ในขั้นตอนนี้ สูตรจะคูณค่าต่างๆ ในอาร์เรย์ที่เก็บไว้ด้วยค่าที่สอดคล้องกันในค่าคงที่ ซึ่งเทียบเท่ากับ:

=SUM(D9*1,E9*2,F9*3,G9*4,H9*5) หรือ =SUM(3*1,4*2,5*3,6*4,7*5)

สุดท้าย ฟังก์ชัน SUM จะบวกค่าและส่งกลับค่า 85

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

=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)) หรือ =SUM({3,4,5,6,7}*{1,2,3,4,5})

องค์ประกอบที่คุณสามารถใช้ในค่าคงที่อาร์เรย์

  • ค่าคงที่อาร์เรย์สามารถประกอบด้วยตัวเลข ข้อความ ค่าตรรกะ (เช่น TRUE และ FALSE) และค่าความผิดพลาด เช่น #N/A คุณสามารถใช้ตัวเลขในรูปแบบจํานวนเต็ม ทศนิยม และรูปแบบเชิงวิทยาศาสตร์ได้ ถ้าคุณใส่ข้อความ คุณจําเป็นต้องล้อมรอบข้อความด้วยเครื่องหมายอัญถูก ("ข้อความ")

  • ค่าคงที่อาร์เรย์ไม่สามารถมีอาร์เรย์ สูตร หรือฟังก์ชันเพิ่มเติมได้ กล่าวคือ เครื่องหมายจุลภาคหรือเครื่องหมายอัฒภาคสามารถมีได้เฉพาะข้อความหรือตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคหรือเครื่องหมายอัฒภาคเท่านั้น Excel จะแสดงข้อความเตือนเมื่อคุณใส่สูตร เช่น {1,2,A1:D4} หรือ {1,2,SUM(Q2:Z8)} นอกจากนี้ ค่าตัวเลขไม่สามารถมีเครื่องหมายเปอร์เซ็นต์ เครื่องหมายดอลลาร์ เครื่องหมายจุลภาค หรือวงเล็บได้

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

ไปที่ สูตร > ชื่อที่กําหนด > กําหนดชื่อ ในกล่อง ชื่อ ให้พิมพ์ ไตรมาส 1 ในกล่อง อ้างอิงไปยัง ให้ใส่ค่าคงที่ต่อไปนี้ (โปรดอย่าลืมพิมพ์วงเล็บปีกกาเข้าไปด้วยตัวเอง)

={"มกราคม","กุมภาพันธ์","มีนาคม"}

ขณะนี้กล่องโต้ตอบควรมีลักษณะดังนี้

เพิ่มค่าคงที่อาร์เรย์ที่มีชื่อจากสูตร > ชื่อที่กําหนด > ตัวจัดการชื่อ > ใหม่

คลิก ตกลง แล้วเลือกแถวใดก็ได้ที่มีเซลล์ว่างสามเซลล์ แล้วใส่ =Quarter1

ผลลัพธ์ต่อไปนี้จะแสดงขึ้น:

ใช้ค่าคงที่อาร์เรย์ที่มีชื่อในสูตร เช่น =Quarter1 ซึ่ง Quarter1 ถูกกําหนดไว้เป็น ={"January","กุมภาพันธ์","March"}

ถ้าคุณต้องการให้ผลลัพธ์กระจายในแนวตั้งแทนแนวนอน คุณสามารถใช้ =TRANSPOSE(Quarter1)

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

=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"mmm")

ใช้ฟังก์ชัน TEXT, DATE, YEAR, TODAY และ SEQUENCE ร่วมกันเพื่อสร้างรายการแบบไดนามิก 12 เดือน

ฟังก์ชัน DATE จะใช้ฟังก์ชัน DATE เพื่อสร้างวันที่โดยยึดตามปีปัจจุบัน SEQUENCE จะสร้างค่าคงที่อาร์เรย์ตั้งแต่ 1 ถึง 12 สําหรับเดือนมกราคมถึงธันวาคม จากนั้น ฟังก์ชัน TEXT จะแปลงรูปแบบการแสดงผลเป็น "mmm" (ม.ค., ก.พ., มี.ค.เป็นต้น) ถ้าคุณต้องการแสดงชื่อเดือนแบบเต็ม เช่น มกราคม คุณต้องใช้ "mmmm"

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

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

  • หลายรายการในอาร์เรย์

    ใส่ =SEQUENCE(1,12)*2, หรือ ={1,2,3,4; 5,6,7,8; 9,10,11,12}*2

    คุณยังสามารถหารด้วย (/) บวกด้วย (+) และลบด้วย (-)

  • การยกกำลังสองข้อมูลในอาร์เรย์

    ใส่ =SEQUENCE(1,12)^2 หรือ ={1,2,3,4; 5,6,7,8; 9,10,11,12}^2

  • ค้นหารากที่สองของรายการยกกําลังสองในอาร์เรย์

    ป้อน =SQRT(SEQUENCE(1,12)^2) หรือ =SQRT({1,2,3,4; 5,6,7,8; 9,10,11,12}^2)

  • สับเปลี่ยนแถวมิติเดียว

    Enter =TRANSPOSE(SEQUENCE(1,5)) หรือ =TRANSPOSE({1,2,3,4,5})

    ถึงแม้ว่าคุณจะใส่ค่าคงที่อาร์เรย์แนวนอนเข้าไป ฟังก์ชัน TRANSPOSE ก็จะแปลงค่าคงที่อาร์เรย์เป็นคอลัมน์

  • สับเปลี่ยนคอลัมน์มิติเดียว

    Enter =TRANSPOSE(SEQUENCE(5,1)) หรือ =TRANSPOSE({1; 2; 3; 4; 5})

    ถึงแม้ว่าคุณจะใส่ค่าคงที่อาร์เรย์แนวตั้งเข้าไป ฟังก์ชัน TRANSPOSE ก็จะแปลงค่าคงที่อาร์เรย์เป็นแถว

  • สับเปลี่ยนค่าคงที่สองมิติ

    Enter =TRANSPOSE(SEQUENCE(3,4)) หรือ =TRANSPOSE({1,2,3,4; 5,6,7,8; 9,10,11,12})

    ฟังก์ชัน TRANSPOSE จะแปลงแถวแต่ละแถวให้เป็นชุดคอลัมน์

ส่วนนี้จะมีตัวอย่างสูตรอาร์เรย์พื้นฐาน

  • สร้างอาร์เรย์จากค่าที่มีอยู่

    ตัวอย่างต่อไปนี้อธิบายวิธีการใช้สูตรอาร์เรย์เพื่อสร้างอาร์เรย์ใหม่จากอาร์เรย์ที่มีอยู่

    ใส่ =SEQUENCE(3,6,10,10) หรือ ={10,20,30,40,50,60; 70,80,90,100,110,120; 130,140,150,160,170,180}

    ตรวจสอบให้แน่ใจว่าพิมพ์ { (วงเล็บปีกกาเปิด) ก่อนที่คุณจะพิมพ์ 10 และ } (วงเล็บปีกกาปิด) หลังจากที่คุณพิมพ์ 180 เนื่องจากคุณกําลังสร้างอาร์เรย์ของตัวเลข

    ถัดไป ให้ใส่ =D9# หรือ =D9:I11 ในเซลล์ว่าง อาร์เรย์ของเซลล์ขนาด 3 x 6 จะปรากฏพร้อมค่าเดียวกันกับที่คุณเห็นใน D9:D11 เครื่องหมาย # เรียกว่า ตัวดําเนินการช่วงที่สปิลล์ และเป็นวิธีการอ้างอิงช่วงอาร์เรย์ทั้งหมดของ Excel แทนที่จะพิมพ์ออกมา

    ใช้ตัวดําเนินการช่วงที่สปิลล์ (#) เพื่ออ้างอิงอาร์เรย์ที่มีอยู่

  • สร้างค่าคงที่อาร์เรย์จากค่าที่มีอยู่

    คุณสามารถใช้ผลลัพธ์ของสูตรอาร์เรย์ที่หกและแปลงเป็นส่วนต่างๆ ของคอมโพเนนต์ได้ เลือกเซลล์ D9 แล้วกด F2 เพื่อสลับไปยังโหมดแก้ไข ถัดไป ให้กด F9 เพื่อแปลงการอ้างอิงเซลล์เป็นค่าซึ่ง Excel จะแปลงเป็นค่าคงที่อาร์เรย์ เมื่อคุณกด Enter สูตร =D9# ควรเป็น ={10,20,30; 40,50,60; 70,80,90}.

  • นับอักขระในช่วงของเซลล์

    ตัวอย่างต่อไปนี้แสดงวิธีการนับจํานวนอักขระในช่วงของเซลล์ ซึ่งรวมถึงช่องว่าง

    นับจํานวนอักขระทั้งหมดในช่วง และอาร์เรย์อื่นๆ สําหรับการทํางานกับสตริงข้อความ

    =SUM(LEN(C9:C13))

    ในกรณีนี้ ฟังก์ชัน LEN จะส่งกลับความยาวของแต่ละสตริงข้อความในแต่ละเซลล์ในช่วง จากนั้น ฟังก์ชัน SUM จะรวมค่าเหล่านั้นเข้าด้วยกันและแสดงผลลัพธ์ (66) ถ้าคุณต้องการหาจํานวนอักขระโดยเฉลี่ย คุณสามารถใช้:

    =AVERAGE(LEN(C9:C13))

  • เนื้อหาของเซลล์ที่ยาวที่สุดในช่วง C9:C13

    =INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)

    สูตรนี้จะทํางานเมื่อช่วงข้อมูลมีคอลัมน์เดียวของเซลล์เท่านั้น

    ลองมาดูสูตรอย่างละเอียดโดยเริ่มจากองค์ประกอบภายในและทํางานภายนอก ฟังก์ชัน LEN จะส่งกลับความยาวของรายการแต่ละรายการในช่วงเซลล์ D2:D6 ฟังก์ชัน MAX จะคํานวณค่าที่มากที่สุดระหว่างรายการเหล่านั้น ซึ่งสอดคล้องกับสตริงข้อความที่ยาวที่สุด ซึ่งอยู่ในเซลล์ D3

    นี่คือสิ่งที่ซับซ้อนเล็กน้อย ฟังก์ชัน MATCH จะคํานวณออฟเซต (ตําแหน่งสัมพันธ์) ของเซลล์ที่มีสตริงข้อความที่ยาวที่สุด เมื่อต้องการทําเช่นนั้น จําเป็นต้องมีอาร์กิวเมนต์สามรายการ: ค่าการค้นหา อาร์เรย์การค้นหา และชนิดการจับคู่ ฟังก์ชัน MATCH จะค้นหาอาร์เรย์การค้นหาสําหรับค่าการค้นหาที่ระบุ ในกรณีนี้ ค่าการค้นหาคือสตริงข้อความที่ยาวที่สุด:

    MAX(LEN(C9:C13)

    และสตริงดังกล่าวจะอยู่ในอาร์เรย์นี้

    LEN(C9:C13)

    อาร์กิวเมนต์ชนิดตรงกันในกรณีนี้คือ 0 ชนิดการจับคู่สามารถเป็นค่า 1, 0 หรือ -1

    • 1 - ส่งกลับค่าที่มากที่สุดที่น้อยกว่าหรือเท่ากับค่า val ของการค้นหา

    • 0 - ส่งกลับค่าแรกเท่ากับค่าการค้นหาทุกประการ

    • -1 - ส่งกลับค่าที่น้อยที่สุดที่มากกว่าหรือเท่ากับค่าการค้นหาที่ระบุ

    • ถ้าคุณละชนิดที่ตรงกัน Excel จะถือว่าเป็น 1

    สุดท้าย ฟังก์ชัน INDEX จะใช้อาร์กิวเมนต์เหล่านี้ คือ อาร์เรย์ และหมายเลขแถวและคอลัมน์ภายในอาร์เรย์นั้น ช่วงเซลล์ C9:C13 มีอาร์เรย์ ฟังก์ชัน MATCH จะให้ที่อยู่เซลล์ และอาร์กิวเมนต์สุดท้าย (1) ระบุว่าค่ามาจากคอลัมน์แรกในอาร์เรย์

    ถ้าคุณต้องการรับเนื้อหาของสตริงข้อความที่เล็กที่สุด คุณจะต้องแทนที่ MAX ในตัวอย่างด้านบนด้วย MIN

  • ค้นหาค่า n ที่น้อยที่สุดในช่วง

    ตัวอย่างนี้แสดงวิธีการค้นหาค่าที่น้อยที่สุดสามค่าในช่วงของเซลล์ ที่อาร์เรย์ของข้อมูลตัวอย่างในเซลล์ B9:B18has ถูกสร้างขึ้นด้วย: =INT(RANDARRAY(10,1)*100) โปรดทราบว่า RANDARRAY เป็นฟังก์ชันที่เปลี่ยนแปลงได้ ดังนั้นคุณจะได้รับชุดตัวเลขแบบสุ่มใหม่ทุกครั้งที่ Excel คํานวณ

    สูตรอาร์เรย์ Excel เพื่อค้นหาค่าที่น้อยที่สุดที่ N: =SMALL(B9#,SEQUENCE(D9))

    Enter =SMALL(B9#,SEQUENCE(D9), =SMALL(B9:B18,{1; 2; 3})

    สูตรนี้ใช้ค่าคงที่อาร์เรย์เพื่อประเมิน ฟังก์ชัน SMALL สามครั้ง และส่งกลับสมาชิกที่น้อยที่สุด 3 รายในอาร์เรย์ที่มีอยู่ในเซลล์ B9:B18 โดยที่ 3 คือค่าตัวแปรในเซลล์ D9 เมื่อต้องการค้นหาค่าเพิ่มเติม คุณสามารถเพิ่มค่าในฟังก์ชัน SEQUENCE หรือเพิ่มอาร์กิวเมนต์เพิ่มเติมไปยังค่าคงที่ คุณยังสามารถใช้ฟังก์ชันเพิ่มเติมกับสูตรนี้ เช่น SUM หรือ AVERAGE ตัวอย่างเช่น

    =SUM(SMALL(B9#,SEQUENCE(D9))

    =AVERAGE(SMALL(B9#,SEQUENCE(D9))

  • ค้นหาค่า n ที่มากที่สุดในช่วง

    เมื่อต้องการค้นหาค่าที่มากที่สุดในช่วง คุณสามารถแทนที่ฟังก์ชัน SMALL ด้วยฟังก์ชัน LARGE นอกจากนี้ ตัวอย่างต่อไปนี้ใช้ฟังก์ชัน ROW และ INDIRECT

    ใส่ =LARGE(B9#,ROW(INDIRECT("1:3"))) หรือ =LARGE(B9:B18,ROW(INDIRECT("1:3")))

    ณ จุดนี้ อาจช่วยให้ทราบเล็กน้อยเกี่ยวกับฟังก์ชัน ROW และ INDIRECT คุณสามารถใช้ฟังก์ชัน ROW เพื่อสร้างอาร์เรย์ของจํานวนเต็มที่ต่อเนื่องกันได้ ตัวอย่างเช่น เลือกค่าว่างแล้วใส่:

    =ROW(1:10)

    สูตรจะสร้างคอลัมน์ที่มีจํานวนเต็มติดกัน 10 ตัว เมื่อต้องการดูปัญหาที่อาจเกิดขึ้น ให้แทรกแถวเหนือช่วงที่มีสูตรอาร์เรย์ (ซึ่งอยู่เหนือแถวที่ 1) Excel จะปรับการอ้างอิงแถว และสูตรจะสร้างจํานวนเต็มตั้งแต่ 2 ถึง 11 เมื่อต้องการแก้ไขปัญหา ให้คุณเพิ่มฟังก์ชัน INDIRECT ลงในสูตร:

    =ROW(INDIRECT("1:10"))

    ฟังก์ชัน INDIRECT ใช้สตริงข้อความเป็นอาร์กิวเมนต์ (ซึ่งเป็นสาเหตุที่ช่วง 1:10 ถูกล้อมรอบด้วยเครื่องหมายอัญประกาศ) Excel จะไม่ปรับค่าข้อความเมื่อคุณแทรกแถวหรือย้ายสูตรอาร์เรย์ ดังนั้น ฟังก์ชัน ROW จะสร้างอาร์เรย์ของจํานวนเต็มที่คุณต้องการเสมอ คุณสามารถใช้ SEQUENCE ได้อย่างง่ายดาย:

    =SEQUENCE(10)

    มาตรวจสอบสูตรที่คุณใช้ก่อนหน้านี้ — =LARGE(B9#,ROW(INDIRECT("1:3"))) โดยเริ่มจากวงเล็บด้านในและด้านนอก: ฟังก์ชัน INDIRECT จะส่งกลับชุดของค่าข้อความ ในกรณีนี้ ค่า 1 ถึง 3 ฟังก์ชัน ROW จะสร้างอาร์เรย์คอลัมน์แบบสามเซลล์ ฟังก์ชัน LARGE ใช้ค่าในช่วงเซลล์ B9:B18 และจะถูกประเมินสามครั้ง หนึ่งครั้งสําหรับแต่ละการอ้างอิงที่ส่งกลับโดยฟังก์ชัน ROW ถ้าคุณต้องการค้นหาค่าเพิ่มเติม ให้คุณเพิ่มช่วงเซลล์ที่มากกว่าลงในฟังก์ชัน INDIRECT สุดท้าย คุณสามารถใช้สูตรนี้กับฟังก์ชันอื่นๆ เช่น SUM และ AVERAGE ได้ เช่นเดียวกับตัวอย่างขนาดเล็ก

  • รวมช่วงที่มีค่าความผิดพลาด

    ฟังก์ชัน SUM ใน Excel จะไม่ทํางานเมื่อคุณพยายามรวมช่วงที่มีค่าความผิดพลาด เช่น #VALUE! หรือ #N/A ตัวอย่างนี้แสดงให้คุณเห็นวิธีการรวมค่าในช่วงที่ชื่อ Data ที่มีข้อผิดพลาด:

    ใช้อาร์เรย์เพื่อจัดการกับข้อผิดพลาด ตัวอย่างเช่น =SUM(IF(ISERROR(Data),"",Data) จะรวมช่วงที่ชื่อ Data แม้ว่าจะมีข้อผิดพลาด เช่น #VALUE! หรือ #NA!

  • =SUM(IF(ISERROR(Data),"",Data))

    สูตรจะสร้างอาร์เรย์ใหม่ที่มีค่าดั้งเดิมลบด้วยค่าความผิดพลาดใดๆ เริ่มต้นจากฟังก์ชันภายในและการทํางานภายนอก ฟังก์ชัน ISERROR จะค้นหาข้อผิดพลาดในช่วงของเซลล์ (ข้อมูล) ฟังก์ชัน IF จะส่งกลับค่าที่เฉพาะเจาะจง ถ้าเงื่อนไขที่คุณระบุประเมินเป็น TRUE และส่งกลับค่าอื่นถ้าประเมินเป็น FALSE ในกรณีนี้ จะส่งกลับสตริงว่าง ("") สําหรับค่าความผิดพลาดทั้งหมดเนื่องจากค่าเหล่านั้นประเมินเป็น TRUE และจะส่งกลับค่าที่เหลือจากช่วง (ข้อมูล) เนื่องจากค่าเหล่านี้ประเมินเป็น FALSE ซึ่งหมายความว่าค่าเหล่านี้ไม่มีค่าความผิดพลาด จากนั้น ฟังก์ชัน SUM จะคํานวณผลรวมสําหรับอาร์เรย์ที่กรองแล้ว

  • นับจำนวนค่าความผิดพลาดในช่วง

    ตัวอย่างนี้จะเหมือนกับสูตรก่อนหน้า แต่จะส่งกลับจํานวนค่าความผิดพลาดในช่วงที่ชื่อ Data แทนที่จะกรองออก:

    =SUM(IF(ISERROR(Data),1,0))

    สูตรนี้จะสร้างอาร์เรย์ที่มีค่า 1 สําหรับเซลล์ที่มีข้อผิดพลาด และค่า 0 สําหรับเซลล์ที่ไม่มีข้อผิดพลาด คุณสามารถลดความซับซ้อนของสูตรและได้ผลลัพธ์เดียวกันโดยการเอาอาร์กิวเมนต์ที่สามสําหรับฟังก์ชัน IF ออก ดังนี้

    =SUM(IF(ISERROR(Data),1))

    ถ้าคุณไม่ระบุอาร์กิวเมนต์ ฟังก์ชัน IF จะส่งกลับค่า FALSE ถ้าเซลล์ไม่มีค่าความผิดพลาด คุณสามารถลดความซับซ้อนของสูตรได้มากขึ้น ดังนี้

    =SUM(IF(ISERROR(Data)*1))

    เวอร์ชันนี้ใช้งานได้ เนื่องจาก TRUE*1=1 และ FALSE*1=0

คุณอาจต้องรวมค่าตามเงื่อนไข

คุณสามารถใช้อาร์เรย์เพื่อคํานวณตามเงื่อนไขบางอย่างได้ =SUM(IF(Sales>0,Sales)) จะรวมค่าทั้งหมดที่มากกว่า 0 ในช่วงที่เรียกว่า Sales

ตัวอย่างเช่น สูตรอาร์เรย์นี้จะรวมเฉพาะจํานวนเต็มบวกในช่วงที่ชื่อ Sales ซึ่งแทนเซลล์ E9:E24 ในตัวอย่างด้านบน

=SUM(IF(Sales>0,Sales))

ฟังก์ชัน IF จะสร้างอาร์เรย์ของค่าบวกและค่าเท็จ ฟังก์ชัน SUM จะละเว้นค่าเท็จเนื่องจาก 0+0=0 ช่วงเซลล์ที่คุณใช้ในสูตรนี้อาจประกอบด้วยจํานวนแถวและคอลัมน์เท่าใดก็ได้

คุณยังสามารถรวมค่าที่ตรงกับเงื่อนไขมากกว่าหนึ่งเงื่อนไขได้ ตัวอย่างเช่น สูตรอาร์เรย์นี้จะคํานวณค่าที่มากกว่า 0 AND ที่น้อยกว่า 2500

=SUM((Sales>0)*(Sales<2500)*(Sales))

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

คุณยังสามารถสร้างสูตรอาร์เรย์ที่ใช้ชนิดของเงื่อนไข OR ได้ ตัวอย่างเช่น คุณสามารถรวมค่าที่มากกว่า 0 หรือ น้อยกว่า 2500 ได้

=SUM(IF((Sales>0)+(Sales<2500),Sales))

คุณไม่สามารถใช้ฟังก์ชัน AND และ OR ในสูตรอาร์เรย์ได้โดยตรง เนื่องจากฟังก์ชันเหล่านั้นส่งกลับผลลัพธ์เดียว ฟังก์ชัน TRUE หรือ FALSE และฟังก์ชันอาร์เรย์ต้องใช้อาร์เรย์ของผลลัพธ์ คุณสามารถแก้ไขปัญหาชั่วคราวได้โดยใช้ตรรกะที่แสดงในสูตรก่อนหน้า กล่าวคือ คุณดําเนินการทางคณิตศาสตร์ เช่น บวกหรือคูณกับค่าที่ตรงตามเงื่อนไข OR หรือ AND

ตัวอย่างนี้จะแสดงวิธีการเอาค่าศูนย์ออกจากช่วงเมื่อคุณต้องการหาค่าเฉลี่ยของค่าในช่วงนั้น สูตรจะใช้ช่วงข้อมูลที่ชื่อ Sales ดังนี้

=AVERAGE(IF(Sales<>0,Sales))

ฟังก์ชัน IF จะสร้างอาร์เรย์ของค่าที่ไม่ใช่ 0 และส่งต่อค่าดังกล่าวไปยังฟังก์ชัน AVERAGE

สูตรอาร์เรย์นี้จะเปรียบเทียบค่าในช่วงของเซลล์สองช่วงที่ชื่อ MyData และ YourData และส่งกลับจํานวนความแตกต่างระหว่างเซลล์ทั้งสอง ถ้าเนื้อหาของสองช่วงเหมือนกัน สูตรจะส่งกลับค่า 0 เมื่อต้องการใช้สูตรนี้ ช่วงของเซลล์ต้องมีขนาดเดียวกันและมีมิติเดียวกัน ตัวอย่างเช่น ถ้า MyData เป็นช่วงของ 3 แถวคูณ 5 คอลัมน์ YourData จะต้องเป็น 3 แถวคูณ 5 คอลัมน์:

=SUM(IF(MyData=YourData,0,1))

สูตรจะสร้างอาร์เรย์ใหม่ที่มีขนาดเดียวกับช่วงที่คุณกําลังเปรียบเทียบ ฟังก์ชัน IF จะเติมอาร์เรย์ด้วยค่า 0 และค่า 1 (0 สําหรับเซลล์ที่ไม่ตรงกันและ 1 สําหรับเซลล์ที่เหมือนกัน) จากนั้น ฟังก์ชัน SUM จะส่งกลับผลรวมของค่าในอาร์เรย์

คุณสามารถลดความซับซ้อนของสูตรได้ดังนี้

=SUM(1*(MyData<>YourData))

เช่นเดียวกับสูตรที่นับค่าความผิดพลาดในช่วง สูตรนี้ใช้ได้เนื่องจาก TRUE*1=1 และ FALSE*1=0

สูตรอาร์เรย์นี้จะแสดงหมายเลขแถวของค่าสูงสุดในช่วงคอลัมน์เดียวที่มีชื่อว่า Data

=MIN(IF(Data=MAX(Data),ROW(Data),""))

ฟังก์ชัน IF จะสร้างอาร์เรย์ใหม่ที่สอดคล้องกับช่วงที่ชื่อ Data ถ้าเซลล์ที่สอดคล้องกันมีค่ามากที่สุดในช่วง อาร์เรย์จะมีหมายเลขแถว มิฉะนั้น อาร์เรย์จะมีสตริงว่าง ("") ฟังก์ชัน MIN จะใช้อาร์เรย์ใหม่เป็นอาร์กิวเมนต์ที่สองและส่งกลับค่าที่น้อยที่สุด ซึ่งสอดคล้องกับหมายเลขแถวของค่าสูงสุดใน Data ถ้าช่วงที่ชื่อ Data มีค่ามากที่สุดที่เหมือนกัน สูตรจะส่งกลับแถวของค่าแรก

ถ้าคุณต้องการให้แสดงที่อยู่เซลล์ตามจริงของค่าสูงสุด ให้ใช้สูตรต่อไปนี้

=ADDRESS(MIN(IF(Data=MAX(Data),ROW(Data),"")),COLUMN(Data))

คุณจะพบตัวอย่างที่คล้ายกันในเวิร์กบุ๊กตัวอย่างบนเวิร์กชีต ความแตกต่างระหว่างชุดข้อมูล

ใบตอบรับ

ส่วนต่างๆ ของบทความนี้ยึดตามชุดของคอลัมน์ Excel Power User ที่เขียนโดย Colin Wilcox และปรับให้เข้ากับบทที่ 14 และ 15 ของสูตร Excel 2002 หนังสือที่เขียนโดย John Walkenbach ซึ่งเป็น MVP Excel เวอร์ชันเก่า

ต้องการความช่วยเหลือเพิ่มเติมไหม

คุณสามารถสอบถามผู้เชี่ยวชาญใน Excel Tech Community หรือรับการสนับสนุนใน ชุมชน

ดูเพิ่มเติม

ลักษณะการทำงานของอาร์เรย์แบบไดนามิกและอาร์เรย์ที่กระจายตัว

สูตรอาร์เรย์แบบไดนามิกกับสูตรอาร์เรย์ CSE ดั้งเดิม

ฟังก์ชัน FILTER

ฟังก์ชัน RANDARRAY

ฟังก์ชัน SEQUENCE

ฟังก์ชัน SORT

ฟังก์ชัน SORTBY

ฟังก์ชัน UNIQUE

ข้อผิดพลาด #SPILL! ใน Excel

ตัวดําเนินการอินเทอร์เซกชันโดยนัย: @

ภาพรวมของสูตร

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ