จะเปรียบเทียบสองคอลัมน์และค้นหาความแตกต่างใน Excel ได้อย่างไร


45

ฉันมีสองคอลัมน์ใน Excel ที่ฉันต้องการเปรียบเทียบและค้นหาความแตกต่างระหว่างพวกเขา

สมมติ:

  • Col A มี 50 หมายเลขเช่น 0511234567
  • Col B มี 100 หมายเลขในรูปแบบเดียวกัน

ฉันคิดว่าสิ่งนี้สามารถทำได้ด้วยฟังก์ชันและสูตรในตัวของ Excel ดูเหมือนว่าฉันจะปิดหัวข้อ
Matt Handy

คุณช่วยระบุวิธีการทำอย่างนั้นได้ไหม

ดังนั้นคุณต้องการที่จะรู้ว่าตัวเลขที่อยู่ใน Col A เท่านั้นและตัวเลขที่อยู่ใน Col B เท่านั้น?
Tom Shaw

ดูคำถาม SO นี้สำหรับคำตอบของคุณ
Patrick Honorez

ไม่ก่อนอื่นฉันต้องการที่จะรู้ว่าตัวเลขเหล่านั้นทั้งหมดที่ไม่ได้อยู่ใน Col A แต่ใน Col B และจากนั้นฉันต้องการที่จะรู้ว่าตัวเลขเหล่านั้นทั้งหมดที่อยู่ใน Col A แต่ไม่ได้อยู่ใน Col B

คำตอบ:


55

ใช้การจัดรูปแบบตามเงื่อนไข

ไฮไลท์คอลัมน์ คลิกการจัดรูปแบบตามเงื่อนไข > สร้างกฎใหม่ > ใช้สูตรนี้เพื่อกำหนดเซลล์ที่จะจัดรูปแบบ > ป้อน ff สูตร:

=countif($B:$B, $A1)

คลิกปุ่มรูปแบบและเปลี่ยนสีตัวอักษรให้เป็นสีที่คุณชอบ

ทำซ้ำเช่นเดียวกันสำหรับคอลัมน์Bยกเว้นใช้สูตรนี้แล้วลองสีตัวอักษรอื่น

=countif($A:$A, $B1)

ใช้คอลัมน์แยก

ในคอลัมน์Cป้อน ff สูตรลงในเซลล์แรกแล้วคัดลอกลง

=if(countif($B:$B, $A1)<>0, "-", "Not in B")

ในคอลัมน์Dป้อน ff สูตรลงในเซลล์แรกแล้วคัดลอกลง

=if(countif($A:$A, $B1)<>0, "-", "Not in A")

ทั้งสองอย่างนี้จะช่วยให้คุณเห็นภาพว่ารายการใดหายไปจากคอลัมน์อื่น


มีการทดสอบ Excel เวอร์ชันใด
Peter Mortensen

1
"การจัดรูปแบบตามเงื่อนไข" อยู่ที่ไหน ในเมนู? ในเมนูบริบทหรือไม่
Peter Mortensen

ในรุ่นเก่าของ OpenOffice สอดคล้องกับ pre-ริบบิ้น Excel (มันเป็นโคลนของ Excel หลังจากทั้งหมด) มีเมนูคำสั่งรูปแบบ -> รูปแบบตามเงื่อนไข
Peter Mortensen

1
นี่เป็นเรื่องเกี่ยวกับ Excel แต่ในOpenOffice / LibreOfficeใช้$B:$Bเพื่ออ้างถึงคอลัมน์ทั้งหมดBไม่ทำงาน ใช้แทน$B$1:$B$1048576(โดยที่ 1048576 คือแถวที่มีหมายเลขสูงสุด) หมายเหตุ$ในด้านหน้าของตัวเลข (ที่เรียกว่าการอ้างอิงที่แน่นอน ) - นี้จะทำให้การทำงานเป็นไปตามคาดสำหรับการดำเนินงานเช่นเติมลง (เรียกที่นี่ว่า "คัดลอกมันลง") หรือFill Up
Peter Mortensen

14

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

ตัวอย่างเช่นหากคุณต้องการให้ Col C แสดงรายการที่ไม่ซ้ำกับ Col A และ Col D เพื่อแสดงรายการเฉพาะสำหรับ Col B:

A   B   C                                          D
1   3   =IF(ISERROR(MATCH(A1,$B$1:$B$5,0)),A1,"")  =IF(ISERROR(MATCH(B1,$A$1:$A$5,0)),B1,"")
2   5   (fill down)                                (fill down)
3   8   ..                                         ..
4   2   ..                                         ..
5   0   ..                                         ..


4

สมมติว่าคุณต้องการหาคนที่อยู่ในสี B โดยไม่มีการจับคู่ในสี A. ใส่ใน C2:

=COUNTIF($A$2:$A$26;B2)

สิ่งนี้จะให้ 1 (หรือมากกว่า) หากมีการแข่งขันเป็นอย่างอื่น 0

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


4

ถ้าฉันเข้าใจคำถามของคุณดี:

=if(Ax = Bx; True_directive ; False_directive)

แทนที่คำสั่ง True / false ด้วยฟังก์ชันหรือโดยสตริงเช่น "Equal" หรือ "different"


@pasta สิ่งนี้จะไม่ทำงานหากทั้งสองคอลัมน์ไม่ได้เรียงเหมือนกัน - ฉันคิดว่าคำถามไม่เกี่ยวกับเรื่องนี้
SIslam

3

ขึ้นอยู่กับรูปแบบของเซลล์และความต้องการในการใช้งานของคุณ ด้วยการนำหน้า "0" พวกเขาสามารถจัดรูปแบบเป็นข้อความได้

จากนั้นคุณสามารถใช้ฟังก์ชัน IF เพื่อเปรียบเทียบเซลล์ใน Excel:

=IF ( logical_test, value_if_true, value_if_false )

ตัวอย่าง:

=IF ( A1<>A2, "not equal", "equal" )

หากมีการจัดรูปแบบเป็นตัวเลขคุณสามารถลบคอลัมน์แรกจากคอลัมน์อื่นเพื่อให้ได้ความแตกต่าง:

=A1-A2

2

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

=IF(A1=B1,"True","False")

1

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


0

การเปรียบเทียบสามารถทำได้ด้วยรหัส Excel VBA กระบวนการเปรียบเทียบสามารถทำได้ด้วยWorksheet.Countifฟังก์ชันExcel VBA

มีการเปรียบเทียบสองคอลัมน์ในแผ่นงานที่แตกต่างกันในแม่แบบนี้ พบผลลัพธ์ที่แตกต่างเมื่อคัดลอกทั้งแถวไปยังแผ่นงานที่สอง

รหัส:

Dim stk, msb As Worksheet
Set stk = Sheets("Page1")
Set msb = Sheets("Page2")

Application.ScreenUpdating = False
sat = (msb.Range("A" & Rows.Count).End(xlUp).Row) + 1
For i = 2 To stk.Range("A" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf(msb.Range("A2:A" & msb.Range("A" & Rows.Count).End(xlUp).Row), stk.Cells(i, "A")) = 0 Then
        msb.Range("a" & sat).EntireRow.Value = stk.Range("a" & i).EntireRow.Value
        msb.Range("a" & sat).Interior.ColorIndex = 22
        sat = sat + 1
    End If
Next
...

วิดีโอบทแนะนำ: https://www.youtube.com/watch?v=Vt4_hEPsKt8

สามารถดาวน์โหลดไฟล์ตัวอย่างได้ที่นี่


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

0

นี่คือการใช้เครื่องมืออื่น แต่ฉันเพิ่งพบว่ามันง่ายมากที่จะทำ ใช้ Notepad ++:

ใน Excel ตรวจสอบให้แน่ใจว่า 2 คอลัมน์ของคุณเรียงตามลำดับเดียวกันจากนั้นคัดลอกและวางคอลัมน์ของคุณลงในไฟล์ข้อความใหม่ 2 ไฟล์จากนั้นเรียกใช้การเปรียบเทียบ (จากเมนูปลั๊กอิน)


0

การรวมฟังก์ชั่นNOT MATCHทำงานได้ดี งานดังต่อไปนี้ด้วย:

= IF ( ISERROR ( VLOOKUP (<< รายการในรายการที่ใหญ่กว่า >>, << smaler list >>, 1 , FALSE )), << รายการในรายการที่ใหญ่กว่า >>, "")

โปรดจำไว้ว่า: รายการขนาดเล็กจะต้องเรียงลำดับเป็น ASCENDING - ข้อกำหนดของ vlookup

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.