สารบัญ
ในบทเรียนสั้นๆ นี้ คุณจะได้เรียนรู้วิธีการกรองใน Excel แบบไดนามิกด้วยสูตร ตัวอย่างการกรองรายการที่ซ้ำกัน เซลล์ที่มีข้อความบางรายการ มีหลายเกณฑ์ และอื่นๆ
โดยปกติแล้วคุณกรองข้อมูลใน Excel อย่างไร ส่วนใหญ่โดยใช้ตัวกรองอัตโนมัติ และในสถานการณ์ที่ซับซ้อนมากขึ้นด้วยตัวกรองขั้นสูง ด้วยความรวดเร็วและมีประสิทธิภาพ วิธีการเหล่านี้มีข้อเสียเปรียบที่สำคัญประการหนึ่ง กล่าวคือ จะไม่อัปเดตโดยอัตโนมัติเมื่อข้อมูลของคุณเปลี่ยนแปลง หมายความว่าคุณจะต้องล้างข้อมูลและกรองใหม่อีกครั้ง การแนะนำฟังก์ชัน FILTER ใน Excel 365 กลายเป็นทางเลือกที่รอคอยมานานสำหรับฟีเจอร์ทั่วไป สูตร Excel จะคำนวณใหม่โดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงเวิร์กชีตแต่ละครั้ง ซึ่งแตกต่างจากสูตรเหล่านี้ ดังนั้นคุณจะต้องตั้งค่าตัวกรองของคุณเพียงครั้งเดียว!
ฟังก์ชันตัวกรองของ Excel
ฟังก์ชันตัวกรองใน Excel ใช้เพื่อกรองช่วงของข้อมูลตามเกณฑ์ที่คุณระบุ
ฟังก์ชันนี้อยู่ในหมวดหมู่ของฟังก์ชัน Dynamic Arrays ผลลัพธ์คืออาร์เรย์ของค่าที่กระจายไปยังช่วงของเซลล์โดยอัตโนมัติ โดยเริ่มจากเซลล์ที่คุณป้อนสูตร
ไวยากรณ์ของฟังก์ชัน FILTER เป็นดังนี้:
FILTER(อาร์เรย์, รวม , [if_empty])ตำแหน่ง:
- อาร์เรย์ (จำเป็น) - ช่วงหรืออาร์เรย์ของค่าที่คุณต้องการกรอง
- รวม (จำเป็น) - เกณฑ์ที่ระบุเป็นอาร์เรย์บูลีน (ค่า TRUE และ FALSE)
ของมันแม้แต่คอลัมน์หลายร้อยคอลัมน์ คุณอาจต้องการจำกัดผลลัพธ์ให้เหลือเพียงไม่กี่คอลัมน์ที่สำคัญที่สุด
ตัวอย่างที่ 1. กรองคอลัมน์ที่อยู่ติดกันบางคอลัมน์
ในสถานการณ์ที่คุณต้องการให้คอลัมน์ข้างเคียงบางคอลัมน์ปรากฏใน ผลลัพธ์ FILTER ให้รวมเฉพาะคอลัมน์เหล่านั้นใน อาร์เรย์ เพราะเป็นอาร์กิวเมนต์ที่กำหนดว่าจะส่งคืนคอลัมน์ใด
ในตัวอย่างสูตร FILTER พื้นฐาน สมมติว่าคุณต้องการส่งคืน 2 คอลัมน์แรก ( ชื่อ และ กลุ่ม ) ดังนั้น คุณจึงระบุ A2:B13 สำหรับอาร์กิวเมนต์ อาร์เรย์ :
=FILTER(A2:B13, B2:B13=F1, "No results")
ด้วยเหตุนี้ เราจึงได้รับรายชื่อผู้เข้าร่วมของกลุ่มเป้าหมายที่กำหนดไว้ใน F1:
ตัวอย่างที่ 2. กรองคอลัมน์ที่ไม่ติดกัน
ในการทำให้ฟังก์ชัน FILTER ส่งกลับคอลัมน์ที่ไม่ติดกัน ให้ใช้เคล็ดลับอันชาญฉลาดนี้:
- สร้างสูตร FILTER ด้วยเงื่อนไขที่ต้องการโดยใช้ทั้งตารางสำหรับ อาร์เรย์
- ซ้อนสูตรด้านบนไว้ในฟังก์ชัน FILTER อื่น ในการกำหนดค่าฟังก์ชัน "wrapper" ให้ใช้ค่าคงที่อาร์เรย์ของค่า TRUE และ FALSE หรือ 1 และ 0 สำหรับอาร์กิวเมนต์ include โดยที่ TRUE (1) ทำเครื่องหมายคอลัมน์ที่จะเก็บไว้ และ FALSE (0) ทำเครื่องหมาย คอลัมน์ที่จะยกเว้น
ตัวอย่างเช่น หากต้องการส่งคืนเฉพาะ ชื่อ (คอลัมน์ที่ 1) และ ชัยชนะ (คอลัมน์ที่ 3) เราจะใช้ {1, 0,1} หรือ {TRUE,FALSE,TRUE} สำหรับอาร์กิวเมนต์ include ของฟังก์ชัน FILTER ภายนอก:
=FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})
Or
=FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
วิธีจำกัดจำนวนแถวที่ส่งคืนโดยฟังก์ชัน FILTER
หากสูตร FILTER ของคุณพบผลลัพธ์ค่อนข้างมาก แต่เวิร์กชีตของคุณมีพื้นที่จำกัดและคุณไม่สามารถลบข้อมูลด้านล่างได้ คุณสามารถจำกัดจำนวนแถวที่ฟังก์ชัน FILTER ส่งคืนได้ .
มาดูกันว่ามันทำงานอย่างไรกับตัวอย่างสูตรง่ายๆ ที่ดึงผู้เล่นจากกลุ่มเป้าหมายใน F1:
=FILTER(A2:C13, B2:B13=F1)
สูตรด้านบนแสดงระเบียนทั้งหมดที่ พบว่า 4 แถวในกรณีของเรา แต่สมมติว่าคุณมีที่ว่างสำหรับสองคน หากต้องการแสดงผลเฉพาะ 2 แถวแรกที่พบ คุณต้องทำดังนี้:
- ใส่สูตร FILTER ลงในอาร์กิวเมนต์ อาร์เรย์ ของฟังก์ชัน INDEX
- สำหรับอาร์กิวเมนต์ row_num ของ INDEX ให้ใช้ค่าคงที่อาร์เรย์แนวตั้ง เช่น {1;2} กำหนดจำนวนแถวที่จะส่งคืน (2 ในกรณีของเรา)
- สำหรับอาร์กิวเมนต์ column_num ให้ใช้ค่าคงที่อาร์เรย์แนวนอน เช่น {1,2,3} ซึ่งจะระบุคอลัมน์ที่จะส่งคืน (3 คอลัมน์แรกในตัวอย่างนี้)
- เพื่อดูแลข้อผิดพลาดที่อาจเกิดขึ้นเมื่อไม่พบข้อมูลที่ตรงกับเกณฑ์ของคุณ คุณสามารถรวมสูตรของคุณในฟังก์ชัน IFERROR
สูตรที่สมบูรณ์จะอยู่ในรูปแบบนี้:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "No result")
เมื่อทำงานกับตารางขนาดใหญ่ การเขียนค่าคงที่อาร์เรย์ด้วยตนเองอาจเป็น ค่อนข้างยุ่งยาก ไม่มีปัญหา ฟังก์ชัน SEQUENCE สามารถสร้างหมายเลขลำดับให้คุณโดยอัตโนมัติ:
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")
SEQUENCE แรกจะสร้างอาร์เรย์แนวตั้งมีหมายเลขลำดับมากเท่าที่ระบุไว้ในอาร์กิวเมนต์แรก (และเท่านั้น) ลำดับที่สองใช้ฟังก์ชัน COLUMNS เพื่อนับจำนวนคอลัมน์ในชุดข้อมูลและสร้างอาร์เรย์แนวนอนที่เทียบเท่า
เคล็ดลับ ในการส่งคืนข้อมูลจาก คอลัมน์เฉพาะ ไม่ใช่ทุกคอลัมน์ ในค่าคงที่อาร์เรย์แนวนอนที่คุณใช้สำหรับอาร์กิวเมนต์ column_num ของ INDEX ให้รวมเฉพาะตัวเลขเหล่านั้นเท่านั้น ตัวอย่างเช่น หากต้องการแยกข้อมูลจากคอลัมน์ที่ 1 และ 3 ให้ใช้ {1,3}
ฟังก์ชัน Excel FILTER ไม่ทำงาน
ในสถานการณ์ที่สูตร Excel FILTER ของคุณเกิดข้อผิดพลาด เป็นไปได้มากว่าจะเป็นอย่างใดอย่างหนึ่งต่อไปนี้:
#CALC! ข้อผิดพลาด
เกิดขึ้นหากละเว้นอาร์กิวเมนต์ if_empty ซึ่งเป็นทางเลือก และไม่พบผลลัพธ์ที่ตรงกับเกณฑ์ เหตุผลคือปัจจุบัน Excel ไม่รองรับอาร์เรย์ว่าง เพื่อป้องกันข้อผิดพลาดดังกล่าว อย่าลืมกำหนดค่า if_empty ในสูตรของคุณเสมอ
ข้อผิดพลาด #VALUE
เกิดขึ้นเมื่อ อาร์เรย์ และ include อาร์กิวเมนต์มีขนาดที่เข้ากันไม่ได้
#N/A, #VALUE ฯลฯ
ข้อผิดพลาดต่างๆ อาจเกิดขึ้นได้หากค่าบางค่าในอาร์กิวเมนต์ include เป็นข้อผิดพลาดหรือไม่สามารถแปลงเป็นค่าบูลีนได้
ข้อผิดพลาด #NAME
เกิดขึ้นเมื่อพยายามใช้ FILTER ใน Excel เวอร์ชันเก่า โปรดทราบว่าเป็นฟังก์ชันใหม่ซึ่งมีให้ใช้งานใน Office 365 และ Excel 2021 เท่านั้น
ในExcel ใหม่ ข้อผิดพลาด #NAME จะเกิดขึ้นหากคุณสะกดชื่อฟังก์ชันผิดโดยไม่ตั้งใจ
ข้อผิดพลาด #SPILL
ข้อผิดพลาดนี้เกิดขึ้นบ่อยที่สุดหากเซลล์อย่างน้อยหนึ่งเซลล์ในช่วงการรั่วไหลไม่ว่างเปล่า . หากต้องการแก้ไข ให้ล้างหรือลบเซลล์ที่ไม่ว่าง หากต้องการตรวจสอบและแก้ไขกรณีอื่นๆ โปรดดู #SPILL! error ใน Excel: ความหมายและวิธีแก้ไข
#REF! ข้อผิดพลาด
เกิดขึ้นเมื่อใช้สูตร FILTER ระหว่างสมุดงานต่างๆ และปิดสมุดงานต้นทาง
นั่นคือวิธีการแยกไฟล์ข้อมูลใน Excel แบบไดนามิก ฉันขอขอบคุณที่อ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!
ดาวน์โหลดสมุดงานแบบฝึกหัด
กรองใน Excel ด้วยสูตร (ไฟล์ .xlsx)
ความสูง (เมื่อข้อมูลอยู่ในคอลัมน์) หรือความกว้าง (เมื่อข้อมูลอยู่ในแถว) ต้องเท่ากับอาร์กิวเมนต์ อาร์เรย์ฟังก์ชัน FILTER มีเฉพาะใน Excel สำหรับ Microsoft 365 และ Excel 2021 ไม่รองรับใน Excel 2019, Excel 2016 และเวอร์ชันก่อนหน้า
สูตรตัวกรอง Excel พื้นฐาน
สำหรับผู้เริ่มต้น เรามาพูดถึงกรณีง่ายๆ สองสามกรณีเพื่อให้ได้รับ เข้าใจมากขึ้นว่าสูตร Excel ในการกรองข้อมูลทำงานอย่างไร
จากชุดข้อมูลด้านล่าง สมมติว่าคุณต้องการแยกระเบียนที่มีค่าเฉพาะในคอลัมน์ กลุ่ม เช่น กลุ่ม C เพื่อให้เสร็จสิ้น เราใส่นิพจน์ B2:B13="C" ให้กับอาร์กิวเมนต์ include ซึ่งจะสร้างอาร์เรย์บูลีนที่จำเป็น โดยมีค่า TRUE สอดคล้องกับค่า "C"
=FILTER(A2:C13, B2:B13="C", "No results")
ในทางปฏิบัติ การป้อนเกณฑ์ในเซลล์แยกต่างหากจะสะดวกกว่า เช่น F1 และใช้การอ้างอิงเซลล์แทนการฮาร์ดโค้ดค่าโดยตรงในสูตร:
=FILTER(A2:C13, B2:B13=F1, "No results")
ไม่เหมือนกับคุณลักษณะตัวกรองของ Excel ตรงที่ฟังก์ชันนี้ไม่ได้ทำการเปลี่ยนแปลงใดๆ กับข้อมูลต้นฉบับ โดยจะแยกระเบียนที่กรองออกเป็นช่วงที่เรียกว่าช่วงการรั่วไหล (E4:G7 ในภาพหน้าจอด้านล่าง) โดยเริ่มต้นในเซลล์ที่มีการป้อนสูตร:
หากไม่มีระเบียน ตรงกับเกณฑ์ที่ระบุ สูตรจะส่งกลับค่าที่คุณใส่ใน if_empty อาร์กิวเมนต์ "ไม่มีผลลัพธ์" ในตัวอย่างนี้:
หากคุณต้องการ ไม่ส่งคืนอะไรเลย ในกรณีนี้ ระบุสตริงว่าง ("") สำหรับอาร์กิวเมนต์สุดท้าย:
=FILTER(A2:C13, B2:B13=F1, "")
ในกรณีที่ข้อมูลของคุณถูกจัดระเบียบ แนวนอน จากซ้ายไปขวาตามที่แสดงในภาพด้านล่าง ฟังก์ชัน FILTER จะทำงานได้ดีเช่นกัน เพียงให้แน่ใจว่าคุณกำหนดช่วงที่เหมาะสมสำหรับอาร์กิวเมนต์ อาร์เรย์ และ รวม เพื่อให้อาร์เรย์ต้นทางและอาร์เรย์บูลีนมีความกว้างเท่ากัน:
=FILTER(B2:M4, B3:M3= B7, "No results")
ฟังก์ชันตัวกรองของ Excel - บันทึกการใช้งาน
ในการกรองสูตรใน Excel อย่างมีประสิทธิภาพ ต่อไปนี้เป็นประเด็นสำคัญสองสามข้อที่ควรสังเกต:
- ฟังก์ชัน FILTER จะกระจายผลลัพธ์โดยอัตโนมัติในแนวตั้งหรือแนวนอนในเวิร์กชีต ขึ้นอยู่กับวิธีการจัดระเบียบข้อมูลต้นฉบับของคุณ ดังนั้น โปรดตรวจสอบว่าคุณมีเซลล์ว่างเพียงพอเสมอด้านล่างและด้านขวา มิฉะนั้น คุณจะได้รับข้อผิดพลาด #SPILL
- ผลลัพธ์ของฟังก์ชัน Excel FILTER เป็นแบบไดนามิก หมายความว่าเซลล์จะอัปเดตโดยอัตโนมัติเมื่อค่าใน การเปลี่ยนแปลงชุดข้อมูลเดิม อย่างไรก็ตาม ช่วงที่ระบุสำหรับอาร์กิวเมนต์ อาร์เรย์ จะไม่อัปเดตเมื่อมีการเพิ่มรายการใหม่ลงในข้อมูลต้นฉบับ หากคุณต้องการให้ อาร์เรย์ ปรับขนาดโดยอัตโนมัติ ให้แปลงเป็นตาราง Excel และสร้างสูตรที่มีการอ้างอิงที่มีโครงสร้าง หรือสร้างช่วงที่มีชื่อแบบไดนามิก
วิธีกรองใน Excel -ตัวอย่างสูตร
เมื่อคุณทราบวิธีการทำงานของตัวกรองสูตรพื้นฐานของ Excel แล้ว ก็ถึงเวลาทำความเข้าใจข้อมูลเชิงลึกเกี่ยวกับวิธีขยายสูตรเพื่อแก้ปัญหางานที่ซับซ้อนมากขึ้น
ตัวกรองที่มีหลายเกณฑ์ (AND ตรรกะ)
ในการกรองข้อมูลที่มีหลายเกณฑ์ คุณต้องใส่นิพจน์เชิงตรรกะตั้งแต่สองนิพจน์ขึ้นไปสำหรับอาร์กิวเมนต์ include :
FILTER(array, ( range1= เกณฑ์1) * ( ช่วง2= เกณฑ์2), "ไม่มีผลลัพธ์")การดำเนินการคูณจะประมวลผลอาร์เรย์ด้วยตรรกะ และ เพื่อให้แน่ใจว่าเฉพาะระเบียนที่ตรงตาม เกณฑ์ทั้งหมด เท่านั้นที่จะถูกส่งกลับ ในทางเทคนิค การทำงานในลักษณะนี้:
ผลลัพธ์ของแต่ละนิพจน์เชิงตรรกะคืออาร์เรย์ของค่าบูลีน โดยที่ TRUE เท่ากับ 1 และ FALSE เท่ากับ 0 จากนั้น องค์ประกอบของอาร์เรย์ทั้งหมดในตำแหน่งเดียวกันจะถูกคูณ . เนื่องจากการคูณด้วยศูนย์จะให้ค่าศูนย์เสมอ เฉพาะรายการที่เกณฑ์ทั้งหมดเป็น TRUE เท่านั้นที่จะเข้าสู่อาร์เรย์ผลลัพธ์ และด้วยเหตุนี้จึงแยกเฉพาะรายการเหล่านั้นเท่านั้น
ตัวอย่างด้านล่างแสดงสูตรทั่วไปที่ใช้งานจริง
ตัวอย่างที่ 1 กรองหลายคอลัมน์ใน Excel
ขยายสูตร Excel FILTER พื้นฐานของเราออกไปอีกเล็กน้อย มากรองข้อมูลตามสองคอลัมน์: กลุ่ม (คอลัมน์ B) และ ชนะ (คอลัมน์ C)
สำหรับสิ่งนี้ เราตั้งค่าเกณฑ์ต่อไปนี้: พิมพ์ชื่อกลุ่มเป้าหมายใน F2 ( เกณฑ์1 ) และจำนวนขั้นต่ำที่ต้องการของชนะใน F3 ( เกณฑ์2 )
เนื่องจากแหล่งข้อมูลของเราอยู่ใน A2:C13 ( อาร์เรย์ ) กลุ่มจึงอยู่ใน B2:B13 ( range1 ) และการชนะจะอยู่ใน C2:C13 ( range2 ) สูตรจะใช้รูปแบบนี้:
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")
ด้วยเหตุนี้ คุณจะได้รับรายชื่อผู้เล่น ในกลุ่ม A ที่ชนะ 2 ครั้งขึ้นไป:
ตัวอย่างที่ 2. กรองข้อมูลระหว่างวันที่
ก่อนอื่น ควรสังเกตว่าเป็นไปไม่ได้ เพื่อสร้างสูตรทั่วไปเพื่อกรองตามวันที่ใน Excel ในสถานการณ์ที่แตกต่างกัน คุณจะต้องสร้างเกณฑ์ให้แตกต่างกัน ขึ้นอยู่กับว่าคุณต้องการกรองตามวันที่เจาะจง ตามเดือน หรือตามปี จุดประสงค์ของตัวอย่างนี้คือเพื่อแสดงให้เห็นถึงวิธีการทั่วไป
สำหรับข้อมูลตัวอย่างของเรา เราได้เพิ่มคอลัมน์อีกหนึ่งคอลัมน์ที่มีวันที่ของการชนะครั้งล่าสุด (คอลัมน์ D) และตอนนี้ เราจะแยกการชนะที่เกิดขึ้นในช่วงเวลาหนึ่ง เช่น ระหว่างวันที่ 17 พฤษภาคม ถึง 31 พฤษภาคม
โปรดสังเกตว่าในกรณีนี้ เกณฑ์ทั้งสองใช้กับช่วงเดียวกัน:
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")
โดยที่ G2 และ G3 คือวันที่ที่จะกรองระหว่าง
กรองด้วยหลายเกณฑ์ (OR ตรรกะ)
เพื่อแยกข้อมูล ขึ้นอยู่กับเงื่อนไข OR หลายข้อ คุณยังใช้นิพจน์เชิงตรรกะอย่างที่แสดงในตัวอย่างก่อนหน้านี้ แต่แทนที่จะคูณ คุณเพิ่มมันเข้าไป เมื่ออาร์เรย์บูลีนที่ส่งคืนโดยนิพจน์ถูกสรุป อาร์เรย์ผลลัพธ์จะมี 0 สำหรับรายการที่ไม่ตรงตามเกณฑ์ใดๆ (เช่น ทั้งหมดเกณฑ์เป็น FALSE) และรายการดังกล่าวจะถูกกรองออก รายการที่มีเกณฑ์อย่างน้อยหนึ่งเกณฑ์เป็น TRUE จะถูกแยกออก
ต่อไปนี้เป็นสูตรทั่วไปในการกรองคอลัมน์ด้วยตรรกะ OR:
FILTER(array, ( range1= เกณฑ์1) + ( ช่วง2= เกณฑ์2), "ไม่มีผลลัพธ์")ตามตัวอย่าง ลองแยกรายชื่อผู้เล่นที่มี สิ่งนี้หรือ นั้น จำนวนครั้งที่ชนะ
สมมติว่าแหล่งข้อมูลอยู่ใน A2:C13 การชนะอยู่ใน C2:C13 และจำนวนชนะที่น่าสนใจอยู่ใน F2 และ F3 สูตรจะเป็นดังนี้:
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")
ผลที่ได้คือ คุณรู้ว่าผู้เล่นคนใดชนะเกมทั้งหมด (4) และใครไม่ชนะเลย (0):
กรองตามเกณฑ์ AND และ OR หลายรายการ
ในสถานการณ์ที่คุณต้องการใช้เกณฑ์ทั้งสองประเภท โปรดจำกฎง่ายๆ นี้: รวมเกณฑ์ AND ด้วยเครื่องหมายดอกจัน (*) และเกณฑ์ OR พร้อมเครื่องหมายบวก เครื่องหมาย (+)
ตัวอย่างเช่น หากต้องการส่งคืนรายชื่อผู้เล่นที่มีจำนวนการชนะตามที่กำหนด (F2) และอยู่ในกลุ่มที่กล่าวถึงใน E2 หรือ E3 ให้สร้างห่วงโซ่ตรรกะต่อไปนี้ นิพจน์:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "No results")
และคุณจะได้ผลลัพธ์ต่อไปนี้:
วิธีกรองรายการที่ซ้ำกันใน Excel
เมื่อทำงานกับเวิร์กชีตขนาดใหญ่หรือรวมข้อมูลจากแหล่งต่างๆ มักมีความเป็นไปได้ที่รายการที่ซ้ำกันจะแอบเข้ามา
หากคุณต้องการ กรองออก รายการที่ซ้ำกัน และ สารสกัดรายการที่ไม่ซ้ำ จากนั้นใช้ฟังก์ชัน UNIQUE ตามที่อธิบายไว้ในบทช่วยสอนที่ลิงก์ด้านบน
หากเป้าหมายของคุณคือ กรองรายการที่ซ้ำกัน เช่น แยกรายการที่เกิดขึ้นมากกว่าหนึ่งครั้ง ให้ใช้ฟังก์ชัน FILTER ร่วมกับ COUNTIFS
แนวคิดคือการรับจำนวนเหตุการณ์ที่เกิดขึ้นสำหรับบันทึกทั้งหมดและแยกรายการที่มากกว่า 1 ในการรับจำนวน คุณต้องระบุช่วงเดียวกันสำหรับแต่ละ เกณฑ์_ช่วง / เงื่อนไข คู่ของ COUNTIFS ดังนี้:
FILTER( array, COUNTIFS( column1, column1, column2, column2)>1, "ไม่มีผลลัพธ์")ตัวอย่างเช่น หากต้องการกรองแถวที่ซ้ำกันจากข้อมูลใน A2:C20 ตามค่าในคอลัมน์ทั้ง 3 คอลัมน์ นี่คือสูตรที่จะใช้:
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")
เคล็ดลับ หากต้องการกรองรายการที่ซ้ำกันตามค่าใน คอลัมน์หลัก ให้รวมเฉพาะคอลัมน์เหล่านั้นในฟังก์ชัน COUNTIFS
วิธีกรองเซลล์ว่างใน Excel
สูตรสำหรับการกรองเซลล์ว่าง ความจริงแล้ว เป็นรูปแบบของสูตรตัวกรอง Excel ที่มีหลายเกณฑ์และหลายเกณฑ์ ในกรณีนี้ เราจะตรวจสอบว่าคอลัมน์ทั้งหมด (หรือเฉพาะเจาะจง) มีข้อมูลใดๆ อยู่ในคอลัมน์หรือไม่ และไม่รวมแถวที่มีเซลล์ว่างอย่างน้อยหนึ่งเซลล์ ในการระบุเซลล์ที่ไม่ว่าง ให้ใช้ตัวดำเนินการ "ไม่เท่ากับ" () ร่วมกับสตริงว่าง ("") ดังนี้:
FILTER(array, ( column1 "") * ( column2 ="), "ไม่มีผลลัพธ์")ด้วยแหล่งข้อมูลใน A2:C12 เพื่อกรองแถวออกที่มีเซลล์ว่างอย่างน้อยหนึ่งเซลล์ ให้ป้อนสูตรต่อไปนี้ใน E3:
กรองเซลล์ที่มีข้อความเฉพาะ
หากต้องการแยกเซลล์ที่มีข้อความบางอย่าง คุณ สามารถใช้ฟังก์ชัน FILTER ร่วมกับเซลล์คลาสสิกหากมีสูตร:
FILTER(อาร์เรย์, ISNUMBER(SEARCH(" ข้อความ ", ช่วง )), "ไม่มีผลลัพธ์")นี่คือวิธีการทำงาน:
- ฟังก์ชัน SEARCH จะค้นหาสตริงข้อความที่ระบุในช่วงที่กำหนด และส่งกลับตัวเลข (ตำแหน่งของอักขระตัวแรก) หรือ #VALUE! ข้อผิดพลาด (ไม่พบข้อความ)
- ฟังก์ชัน ISNUMBER แปลงตัวเลขทั้งหมดเป็น TRUE และข้อผิดพลาดเป็น FALSE และส่งอาร์เรย์บูลีนที่เป็นผลลัพธ์ไปยังอาร์กิวเมนต์ include ของฟังก์ชัน FILTER
สำหรับตัวอย่างนี้ เราได้เพิ่ม นามสกุล ของผู้เล่นใน B2:B13 พิมพ์ส่วนของชื่อที่เราต้องการค้นหาใน G2 จากนั้นใช้สูตรต่อไปนี้เพื่อ กรองข้อมูล:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")
ด้วยเหตุนี้ สูตรจึงดึงสองนามสกุลที่มี "han":
กรองและคำนวณ (ผลรวม ค่าเฉลี่ย ต่ำสุด สูงสุด ฯลฯ)
ข้อดีเกี่ยวกับฟังก์ชัน Excel FILTER คือไม่เพียงแต่สามารถแยกค่าที่มีเงื่อนไขเท่านั้น แต่ยังสรุปข้อมูลที่กรองได้ด้วย สำหรับสิ่งนี้ ให้รวม FILTER กับฟังก์ชันการรวม เช่น SUM, AVERAGE, COUNT, MAX หรือ MIN
ตัวอย่างเช่น ในการรวมข้อมูลสำหรับกลุ่มเฉพาะใน F1 ให้ใช้สิ่งต่อไปนี้สูตร:
การชนะทั้งหมด:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
การชนะโดยเฉลี่ย:
=AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))
การชนะสูงสุด:
=MAX(FILTER(C2:C13, B2:B13=F1, 0))
การชนะขั้นต่ำ:
=MIN(FILTER(C2:C13, B2:B13=F1, 0))
โปรดทราบว่าในสูตรทั้งหมด เราใช้ศูนย์สำหรับอาร์กิวเมนต์ if_empty ดังนั้นสูตรต่างๆ คืนค่า 0 ถ้าไม่พบค่าที่ตรงกับเกณฑ์ การให้ข้อความใดๆ เช่น "ไม่มีผลลัพธ์" จะส่งผลให้เกิดข้อผิดพลาด #VALUE ซึ่งเป็นสิ่งสุดท้ายที่คุณต้องการ :)
สูตร FILTER ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่
สูตร Excel FILTER มาตรฐานไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ หมายความว่าสูตรนี้ไม่มีความแตกต่างระหว่างตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ หากต้องการแยกแยะตัวพิมพ์ข้อความ ให้ซ้อนฟังก์ชัน EXACT ในอาร์กิวเมนต์ include สิ่งนี้จะบังคับให้ FILTER ทำการทดสอบเชิงตรรกะในลักษณะที่คำนึงถึงตัวพิมพ์เล็กและใหญ่:
FILTER(array, EXACT( range , criteria ), "No Results")Supposing คุณมีทั้งกลุ่ม A และ a และต้องการแยกระเบียนโดยที่กลุ่มนั้นเป็นตัวพิมพ์เล็ก "a" หากต้องการดำเนินการ ให้ใช้สูตรต่อไปนี้ โดยที่ A2:C13 เป็นข้อมูลต้นทาง และ B2:B13 เป็นกลุ่มที่ต้องกรอง:
=FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")
ตามปกติ คุณสามารถป้อนกลุ่มเป้าหมายใน เซลล์ที่กำหนดไว้ล่วงหน้า เช่น F1 และใช้การอ้างอิงเซลล์นั้นแทนข้อความฮาร์ดโค้ด:
=FILTER(A2:C13, EXACT(B2:B13, F1), "No results")
วิธีกรองข้อมูลและส่งคืนเฉพาะคอลัมน์ที่ระบุ
โดยส่วนใหญ่แล้ว การกรองคอลัมน์ทั้งหมดด้วยสูตรเดียวคือสิ่งที่ผู้ใช้ Excel ต้องการ แต่ถ้าตารางต้นฉบับของคุณมีสิบหรือ