สารบัญ
นี่คือส่วนสุดท้ายของชุดค่าที่ไม่ซ้ำของ Excel ที่แสดงวิธีรับรายการค่าที่แตกต่าง/ค่าที่ไม่ซ้ำในคอลัมน์โดยใช้สูตร และวิธีการปรับแต่งสูตรนั้นสำหรับชุดข้อมูลต่างๆ นอกจากนี้ คุณจะได้เรียนรู้วิธีรับรายการที่แตกต่างกันอย่างรวดเร็วโดยใช้ตัวกรองขั้นสูงของ Excel และวิธีแยกแถวที่ไม่ซ้ำด้วย Duplicate Remover
ในบทความล่าสุด 2-3 บทความ เราได้พูดถึงวิธีการต่างๆ ในการนับและค้นหา ค่าที่ไม่ซ้ำใน Excel หากคุณมีโอกาสอ่านบทช่วยสอนเหล่านี้ แสดงว่าคุณรู้วิธีรับรายการที่ไม่ซ้ำหรือแตกต่างโดยการระบุ กรอง และคัดลอก แต่นั่นค่อนข้างยาวและไม่ใช่วิธีเดียวในการแยกค่าที่ไม่ซ้ำใน Excel คุณสามารถทำได้เร็วขึ้นมากโดยใช้สูตรพิเศษ และอีกสักครู่ฉันจะแสดงให้คุณเห็นสิ่งนี้และเทคนิคอื่นๆ อีกสองสามอย่าง
เคล็ดลับ หากต้องการรับค่าที่ไม่ซ้ำกันอย่างรวดเร็วใน Excel 365 เวอร์ชันล่าสุดที่รองรับอาร์เรย์แบบไดนามิก ให้ใช้ฟังก์ชัน UNIQUE ตามที่อธิบายไว้ในบทช่วยสอนที่มีลิงก์ด้านบน
วิธีรับค่าที่ไม่ซ้ำใน Excel
ก่อนอื่นเพื่อหลีกเลี่ยงความสับสน เรามาตกลงกันว่าเราเรียกค่าที่ไม่ซ้ำใน Excel ว่าอะไร ค่าเฉพาะ คือค่าที่มีอยู่ในรายการเพียงครั้งเดียว ตัวอย่างเช่น:
หากต้องการแยกรายการค่าที่ไม่ซ้ำกันใน Excel ให้ใช้หนึ่งในสูตรต่อไปนี้
อาร์เรย์ ค่าที่ไม่ซ้ำกัน สูตร (เสร็จโดยกด Ctrl + Shift + Enterแยกแถวที่ไม่ซ้ำ เลือก คัดลอกไปยังตำแหน่งอื่น จากนั้นระบุตำแหน่งที่คุณต้องการคัดลอก - แผ่นงานที่ใช้งานอยู่ (เลือกตัวเลือก ตำแหน่งที่กำหนดเอง และระบุเซลล์บนสุดของปลายทาง ช่วง) แผ่นงานใหม่หรือสมุดงานใหม่
ในตัวอย่างนี้ ลองเลือกใช้แผ่นงานใหม่:
ชอบวิธีที่ง่ายและรวดเร็วในการรับรายการค่าหรือแถวที่ไม่ซ้ำกันใน Excel หรือไม่ ถ้าเป็นเช่นนั้น ฉันขอแนะนำให้คุณดาวน์โหลดรุ่นทดลองใช้ด้านล่างและทดลองใช้งาน Duplicate Remover รวมถึงเครื่องมือช่วยประหยัดเวลาอื่นๆ ที่เรามีรวมอยู่ใน Ultimate Suite for Excel
ดาวน์โหลดได้
ค้นหาค่าที่ไม่ซ้ำใน Excel - สมุดงานตัวอย่าง (ไฟล์ .xlsx)
Ultimate Suite - รุ่นประเมิน (ไฟล์ .exe)
): =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1,$A$2:$A$10) + (COUNTIF($A$2:$A$10, $A$2:$A$10)1), 0)), "")
ปกติ สูตรค่าเฉพาะ (กรอกโดยการกด Enter):
=IFERROR(INDEX($A$2:$A$10, MATCH(0,INDEX(COUNTIF($B$1:B1, $A$2:$A$10)+(COUNTIF($A$2:$A$10, $A$2:$A$10)1),0,0), 0)), "")
ในสูตรข้างต้น มีการใช้การอ้างอิงต่อไปนี้:
- A2:A10 - รายการต้นฉบับ
- B1 - เซลล์บนสุดของรายการเฉพาะลบ 1 ในตัวอย่างนี้ เราเริ่มต้นรายการเฉพาะ ใน B2 ดังนั้นเราจึงใส่ B1 ให้กับสูตร (B2-1=B1) ถ้ารายการเฉพาะของคุณเริ่มต้นขึ้น เช่น ในเซลล์ C3 แล้วเปลี่ยน $B$1:B1 เป็น $C$2:C2
หมายเหตุ เนื่องจากสูตรอ้างอิงเซลล์เหนือเซลล์แรกของรายการที่ไม่ซ้ำ ซึ่งโดยปกติจะเป็นส่วนหัวของคอลัมน์ (B1 ในตัวอย่างนี้) ตรวจสอบให้แน่ใจว่าส่วนหัวของคุณมีชื่อเฉพาะที่ไม่ปรากฏในที่อื่นในคอลัมน์
ในตัวอย่างนี้ เรากำลังแยกชื่อเฉพาะจากคอลัมน์ A (แม่นยำยิ่งขึ้นจากช่วง A2:A20) และภาพหน้าจอต่อไปนี้จะสาธิตการทำงานของสูตรอาร์เรย์:
คำอธิบายโดยละเอียดเกี่ยวกับตรรกะของสูตรมีอยู่ในส่วนที่แยกต่างหาก และนี่คือวิธีใช้สูตรเพื่อแยกค่าที่ไม่ซ้ำในเวิร์กชีต Excel ของคุณ:
- ปรับแต่งสูตรใดสูตรหนึ่งตามชุดข้อมูลของคุณ
- ป้อนสูตรในเซลล์แรกของรายการเฉพาะ (B2 ในตัวอย่างนี้)
- หากคุณใช้สูตรอาร์เรย์ ให้กด Ctrl + Shift + Enter หากคุณเลือกใช้สูตรปกติ ให้กดปุ่ม Enter ตามปกติ
- คัดลอกสูตรลงไปตามต้องการโดยการลากจุดจับเติม เนื่องจากทั้งสองเราได้สรุปสูตรค่าที่ไม่ซ้ำกันไว้ในฟังก์ชัน IFERROR คุณสามารถคัดลอกสูตรได้จนถึงท้ายตาราง และจะไม่เกะกะข้อมูลของคุณด้วยข้อผิดพลาดใดๆ ไม่ว่าจะมีการแยกค่าที่ไม่ซ้ำออกมากี่ค่าก็ตาม
วิธีรับค่าที่แตกต่างใน Excel (ไม่ซ้ำกัน + เกิดขึ้นครั้งที่ 1)
ตามที่คุณอาจเดาได้จากส่วนหัวของส่วนนี้ ค่าที่แตกต่าง ใน Excel นั้นแตกต่างกันทั้งหมด ค่าในรายการ เช่น ค่าเฉพาะและอินสแตนซ์แรกของค่าที่ซ้ำกัน ตัวอย่างเช่น:
หากต้องการรับรายการที่แตกต่างกันใน Excel ให้ใช้สูตรต่อไปนี้
อาร์เรย์ สูตรเฉพาะ (ต้องกด Ctrl + Shift + Enter ):
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)), "")
ปกติ สูตรเฉพาะ:
=IFERROR(INDEX($A$2:$A$10, MATCH(0, INDEX(COUNTIF($B$1:B1, $A$2:$A$10), 0, 0), 0)), "")
ที่ไหน:
- A2:A10 คือรายการต้นฉบับ
- B1 คือเซลล์ที่อยู่เหนือเซลล์แรกของรายการที่แตกต่างกัน ในตัวอย่างนี้ รายการที่แตกต่างกันเริ่มต้นในเซลล์ B2 (เป็นเซลล์แรกที่คุณป้อนสูตร) ดังนั้นคุณจึงอ้างอิง B1
แยกค่าที่แตกต่างกันใน คอลัมน์ละเว้นเซลล์ว่าง
หากรายการต้นฉบับของคุณมีเซลล์ว่าง สูตรเฉพาะที่เราเพิ่งกล่าวถึงจะส่งกลับค่าศูนย์สำหรับแต่ละแถวที่ว่าง ซึ่งอาจเป็นปัญหาได้ ในการแก้ไขปัญหานี้ ให้ปรับปรุงสูตรเพิ่มเติมอีกเล็กน้อย:
สูตรอาร์เรย์เพื่อแยก ค่าที่แตกต่างกันโดยไม่รวมช่องว่าง :
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF($A$2:$A$10="",1,0), 0)), "")
รับรายการค่าที่แตกต่างกัน ค่าข้อความโดยไม่สนใจตัวเลขและช่องว่าง
ในทำนองเดียวกัน คุณจะได้รับรายการค่าที่แตกต่างกัน ไม่รวมเซลล์ว่างและเซลล์ที่มีตัวเลข :
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF(ISTEXT($A$2:$A$10)=FALSE,1,0), 0)), "")
อย่างรวดเร็ว เตือนความจำ ในสูตรข้างต้น A2:A10 คือรายการแหล่งที่มา และ B1 คือเซลล์ด้านขวาเหนือเซลล์แรกของรายการที่แตกต่างกัน
ภาพหน้าจอต่อไปนี้แสดงผลลัพธ์ของทั้งสองสูตร:
<0วิธีแยกค่าที่แตกต่างกันโดยคำนึงถึงตัวพิมพ์เล็กและใหญ่ใน Excel
เมื่อทำงานกับข้อมูลที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ เช่น รหัสผ่าน ชื่อผู้ใช้ หรือชื่อไฟล์ คุณอาจต้องได้รับรายการ ของค่าที่แตกต่างกันที่คำนึงถึงขนาดตัวพิมพ์ สำหรับสิ่งนี้ ให้ใช้สูตรอาร์เรย์ต่อไปนี้ โดยที่ A2:A10 เป็นรายการต้นฉบับ และ B1 เป็นเซลล์ที่อยู่เหนือเซลล์แรกของรายการที่แตกต่างกัน:
สูตรอาร์เรย์เพื่อรับค่าที่แตกต่างกันที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ (ต้องกด Ctrl + Shift + Enter )
=IFERROR(INDEX($A$2:$A$10, MATCH(0, FREQUENCY(IF(EXACT($A$2:$A$10,TRANSPOSE($B$1:B1)), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10)), ""), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10))), 0)), "")
สูตรเฉพาะ/สูตรเฉพาะทำงานอย่างไร
ส่วนนี้เขียนขึ้นโดยเฉพาะสำหรับผู้ที่สงสัยและ ผู้ใช้ Excel ที่รอบคอบซึ่งไม่เพียงแต่ต้องการทราบสูตรเท่านั้น แต่ยังเข้าใจถึงแก่นแท้ของมันอย่างถ่องแท้
ไม่ต้องบอกก็รู้ว่าสูตรในการแยกค่าที่ไม่ซ้ำใครใน Excel นั้นไม่ใช่เรื่องเล็กน้อยหรือตรงไปตรงมา แต่เมื่อพิจารณาอย่างใกล้ชิด คุณอาจสังเกตเห็นว่าสูตรทั้งหมดใช้แนวทางเดียวกัน นั่นคือการใช้ INDEX/MATCH ร่วมกับฟังก์ชัน COUNTIF หรือ COUNTIF + IF
สำหรับการวิเคราะห์เชิงลึก ลองใช้ สูตรอาร์เรย์ที่แยกรายการของค่าที่แตกต่างกัน เนื่องจากสูตรอื่นๆ ทั้งหมดที่กล่าวถึงในบทช่วยสอนนี้เป็นการปรับปรุงหรือการเปลี่ยนแปลงของสูตรพื้นฐานนี้:
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)), "")
สำหรับผู้เริ่มต้น เรามาเริ่มกันเลย หลีกเลี่ยงฟังก์ชัน IFERROR ที่ชัดเจน ซึ่งใช้เพื่อจุดประสงค์เดียวเพื่อกำจัดข้อผิดพลาด #N/A เมื่อจำนวนเซลล์ที่คุณคัดลอกสูตรเกินจำนวนค่าที่แตกต่างกันในรายการแหล่งที่มา
และ ตอนนี้ เรามาแยกส่วนหลักของสูตรเฉพาะของเรากัน:
- COUNTIF(ช่วง, เกณฑ์) ส่งกลับจำนวนเซลล์ภายในช่วงที่ตรงตามเงื่อนไขที่ระบุ
ในตัวอย่างนี้ COUNTIF($B$1:B1, $A$2:$A$10) ส่งคืนอาร์เรย์ของ 1 และ 0 โดยขึ้นอยู่กับว่าค่าใดของรายการต้นฉบับ ($A$2:$A$10) ปรากฏที่ไหนสักแห่งในรายการที่แตกต่างกัน ($B$1:B1) หากพบค่า สูตรจะส่งกลับ 1 มิฉะนั้น - 0
โดยเฉพาะอย่างยิ่ง ในเซลล์ B2 COUNTIF($B$1:B1, $A$2:$A$10) จะกลายเป็น:
COUNTIF("Distinct", {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"})
และส่งคืน:
{0;0;0;0;0;0;0;0;0}
เนื่องจากไม่มีรายการใดของรายการแหล่งที่มา ( เกณฑ์ ) ปรากฏใน ช่วง โดยที่ฟังก์ชันจะค้นหาคู่ที่ตรงกัน ในกรณีนี้ ช่วง ($B$1:B1) ประกอบด้วยรายการเดียว - "แตกต่าง"
-
MATCH(lookup_value, lookup_array, [match_type])
ส่งคืนตำแหน่งสัมพัทธ์ของค่าการค้นหาในอาร์เรย์
ในตัวอย่างนี้ ค่า lookup_value คือ 0 และด้วยเหตุนี้:
MATCH(0,COUNTIF($B$1:B1, $A$2:$A$10), 0)
เปลี่ยนเป็น:
MATCH(0, { 0 ;0;0;0;0;0;0;0;0},0)
และส่งคืน
เนื่องจาก MATCH ของเราฟังก์ชันได้รับค่าแรกที่เท่ากับค่าการค้นหาทุกประการ (เท่าที่คุณจำได้ ค่าการค้นหาคือ 0)
ในตัวอย่างนี้ INDEX($A$2:$A$10, 1)
กลายเป็น:
INDEX({"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}, 1)
และส่งกลับ "Ronnie"
เมื่อคัดลอกสูตรลงในคอลัมน์ รายการที่แตกต่างกัน ($B$1:B1) จะขยายออกเนื่องจากการอ้างอิงเซลล์ที่สอง (B1) เป็นการอ้างอิงแบบสัมพัทธ์ที่เปลี่ยนแปลงตามตำแหน่งสัมพัทธ์ของเซลล์ที่สูตรเคลื่อนไป
ดังนั้น เมื่อคัดลอกไปยังเซลล์ B3 แล้ว COUNTIF($B$1: B1 , $A$2:$A$10) จะเปลี่ยนเป็น COUNTIF($B$1: B2 , $A$2:$A$10) และกลายเป็น:
COUNTIF({"Distinct";"Ronnie"}, {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}), 0)), "")
และส่งคืน:
{1;0;0;0;0;0;0;0;0}
เนื่องจากพบ "รอนนี่" หนึ่งรายการใน ช่วง $B$1:B2.
จากนั้น MATCH(0,{1; 0 ;0;0;0;0;0;0;0},0) ส่งคืน 2 เนื่องจาก 2 เป็นตำแหน่งสัมพัทธ์ของ 0 ตัวแรกในอาร์เรย์
และสุดท้าย INDEX($A$2:$A$10, 2)
จะส่งกลับค่าจากแถวที่ 2 ซึ่งก็คือ "David"
เคล็ดลับ เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับตรรกะของสูตร คุณสามารถเลือกส่วนต่างๆ ของสูตรในแถบสูตรแล้วกด F9 เพื่อดูว่าส่วนที่เลือกประเมินเป็น:
หากคุณยังมีปัญหาในการหา จากสูตร คุณสามารถดูบทช่วยสอนต่อไปนี้สำหรับคำอธิบายโดยละเอียดเกี่ยวกับวิธีการทำงานของผู้ประสานงาน INDEX/MATCH: INDEX & จับคู่กันดีกว่าเป็นทางเลือกแทน Excel VLOOKUP
ตามที่ได้กล่าวไปแล้ว สูตรอื่นๆ ที่กล่าวถึงในบทช่วยสอนนี้ใช้ตรรกะเดียวกัน โดยมีการแก้ไขเพียงเล็กน้อย:
สูตรค่าที่ไม่ซ้ำ - มีฟังก์ชัน COUNTIF อีกหนึ่งฟังก์ชัน ที่แยกรายการทั้งหมดที่ปรากฏในรายการแหล่งที่มามากกว่าหนึ่งครั้งออกจากรายการที่ไม่ซ้ำกัน: COUNTIF($A$2:$A$10, $A$2:$A$10)1
สูตรค่าที่แตกต่างละเว้นช่องว่าง - ที่นี่คุณเพิ่มฟังก์ชัน IF ที่ป้องกันไม่ให้เซลล์ว่างถูกเพิ่มลงในรายการที่แตกต่างกัน: IF($A$2:$A$13="",1,0)
.
สูตรค่าข้อความที่แตกต่างกันโดยไม่สนใจตัวเลข - คุณใช้ฟังก์ชัน ISTEXT เพื่อตรวจสอบว่าค่านั้นเป็นข้อความหรือไม่ และใช้ฟังก์ชัน IF เพื่อปิดประเภทค่าอื่นๆ ทั้งหมด รวมทั้งเซลล์ว่าง: IF(ISTEXT($A$2:$A$13)=FALSE,1,0)
แยกค่าที่ไม่ซ้ำออกจากคอลัมน์ด้วยตัวกรองขั้นสูงของ Excel
หากคุณไม่ต้องการเสียเวลาไปกับการหาค่าที่ผิดเพี้ยนของสูตรค่าที่แตกต่างกัน คุณสามารถรับรายการค่าที่แตกต่างกันได้อย่างรวดเร็วโดยใช้ปุ่ม ตัวกรองขั้นสูง ขั้นตอนโดยละเอียดอยู่ด้านล่าง
- เลือกคอลัมน์ของข้อมูลที่คุณต้องการแยกค่าที่แตกต่างกัน
- สลับไปที่แท็บ ข้อมูล > จัดเรียง & amp; กรอง กลุ่ม และคลิกปุ่ม ขั้นสูง :
- กาเครื่องหมาย คัดลอกไปยังตำแหน่งอื่น ปุ่มตัวเลือก
- ในกล่อง ช่วงรายการ ตรวจสอบว่าช่วงแหล่งที่มาแสดงอย่างถูกต้อง .
- ใน คัดลอกไปที่ช่อง ป้อนเซลล์บนสุดของช่วงปลายทาง โปรดทราบว่าคุณสามารถคัดลอกข้อมูลที่กรองแล้วไปยัง แผ่นงานที่ใช้งานอยู่ เท่านั้น
- เลือก บันทึกเฉพาะเท่านั้น
โปรดทราบว่าแม้ว่าขั้นสูง ตัวเลือกของตัวกรองมีชื่อว่า " ระเบียนที่ไม่ซ้ำกันเท่านั้น " โดยจะแยก ค่าที่แตกต่างกัน เช่น ค่าที่ไม่ซ้ำกันและค่าที่ซ้ำกันที่เกิดขึ้นครั้งแรก
แยกแถวที่ไม่ซ้ำและแตกต่างด้วย Duplicate ตัวลบ
ในส่วนสุดท้ายของบทช่วยสอนนี้ ให้ฉันแสดงวิธีแก้ปัญหาของเราเองเพื่อค้นหาและแยกค่าที่แตกต่างและไม่ซ้ำกันในแผ่นงาน Excel โซลูชันนี้ผสมผสานความเก่งกาจของสูตร Excel และความเรียบง่ายของตัวกรองขั้นสูง นอกจากนี้ ยังมีคุณสมบัติพิเศษสองสามอย่าง เช่น:
- ค้นหาและแยก แถวที่ไม่ซ้ำ / แตกต่าง ตามค่าในหนึ่งคอลัมน์ขึ้นไป
- ค้นหา , ไฮไลต์ และ คัดลอก ค่าที่ไม่ซ้ำกันไปยังตำแหน่งอื่น ในสมุดงานเดียวกันหรือต่างกัน
และตอนนี้ มาดูการทำงานของเครื่องมือลบรายการซ้ำกัน
สมมติว่าคุณมีตารางสรุปที่สร้างขึ้นโดยการรวมข้อมูลจากตารางอื่นๆ หลายตาราง แน่นอน ตารางสรุปนั้นมีแถวที่ซ้ำกันจำนวนมาก และงานของคุณคือแยกแถวที่ไม่ซ้ำซึ่งปรากฏในตารางเพียงครั้งเดียว หรือแยกแถวรวมถึงการเกิดขึ้นที่ไม่ซ้ำและซ้ำกันครั้งที่ 1 ไม่ว่าจะด้วยวิธีใด ด้วย Add-in ตัวลบรายการที่ซ้ำกัน งานจะเสร็จสิ้นใน 5 ขั้นตอนอย่างรวดเร็ว
- เลือกเซลล์ใดก็ได้ภายในตารางต้นทางของคุณ และคลิกปุ่ม ตัวลบรายการซ้ำ บนปุ่ม Ablebits Data ในกลุ่ม Dedupe
วิซาร์ด Duplicate Remover จะทำงานและเลือก ทั้งโต๊ะ ดังนั้น เพียงคลิก ถัดไป เพื่อดำเนินการขั้นตอนถัดไป
- ไม่ซ้ำกัน
- เกิด +1 ไม่ซ้ำ (แตกต่าง)
ในตัวอย่างนี้ เราตั้งใจที่จะแยก แถวที่ไม่ซ้ำ ที่ปรากฏในตารางต้นฉบับ เพียงครั้งเดียว เราจึงเลือกตัวเลือก เฉพาะ :
เคล็ดลับ ดังที่คุณเห็นในภาพหน้าจอด้านบน มี 2 ตัวเลือกสำหรับ ค่าที่ซ้ำกัน โปรดจำไว้เสมอว่าคุณจำเป็นต้องกรองข้อมูลแผ่นงานอื่นออก
ในตัวอย่างนี้ เราต้องการค้นหาแถวที่ไม่ซ้ำตามค่าในคอลัมน์ทั้ง 3 คอลัมน์ ( หมายเลขคำสั่งซื้อ , ชื่อจริง และ นามสกุล ) ดังนั้น เราเลือกทั้งหมด
- เน้นค่าที่ไม่ซ้ำกัน
- เลือกค่าที่ไม่ซ้ำกัน
- ระบุในคอลัมน์สถานะ
- คัดลอกไปยังตำแหน่งอื่น
เพราะเราคือ