fixmint
TH

วิธีหาความต่างระหว่างไฟล์สเปรดชีตสองเวอร์ชัน

โดย · · อ่าน 5 นาที

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

เปรียบเทียบไฟล์สเปรดชีตหาว่ามีอะไรเปลี่ยนไประหว่างไฟล์ใช้ฟรี

เหตุใดลำดับแถวจึงทำให้การเทียบแบบธรรมดาพัง

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

ใช้คอลัมน์คีย์

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

เมื่อมีคีย์ ทุกแถวจะจัดอยู่ในกลุ่มใดกลุ่มหนึ่งจากสี่กลุ่มนี้:

  • เพิ่มใหม่ คีย์มีอยู่ในไฟล์ใหม่เท่านั้น
  • ถูกลบ คีย์มีอยู่ในไฟล์เก่าเท่านั้น
  • เปลี่ยนแปลง คีย์มีอยู่ในทั้งสองไฟล์ และมีอย่างน้อยหนึ่งเซลล์ที่ต่างกัน
  • ไม่เปลี่ยนแปลง คีย์มีอยู่ในทั้งสองไฟล์ และทุกเซลล์ที่เทียบตรงกัน

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

เซลล์ที่เปลี่ยน และคอลัมน์ที่เปลี่ยนทุกครั้ง

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

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

ตัวเลขที่ดูต่างแต่มีค่าเท่ากัน

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

  • ตัวคั่นหลักพัน 1,000 กับ 1000 เป็นตัวเลขเดียวกัน
  • ทศนิยม 12.5 ที่แสดงเป็น 12.50 เป็นค่าเดียวกันในการแสดงผลที่ต่างกัน
  • รูปแบบสกุลเงิน เซลล์ที่จัดรูปแบบเป็น £5 เก็บตัวเลข 5 ส่วนเซลล์ที่พิมพ์เป็นข้อความพร้อมเครื่องหมาย £ จะไม่ใช่
  • วันที่ สเปรดชีตเก็บวันที่เป็นหมายเลขลำดับและแสดงตามรูปแบบที่เลือก ดังนั้น 03/04/2026 กับ 2026-04-03 อาจเป็นวันเดียวกันได้

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

คอมพิวเตอร์ยังเก็บทศนิยมในรูปแบบเลขฐานสอง ดังนั้น 0.1 + 0.2 จึงไม่เท่ากับ 0.3 พอดีในภาษาโปรแกรมส่วนใหญ่ การตั้งค่าความคลาดเคลื่อนจะถือว่าตัวเลขเท่ากันเมื่อต่างกันไม่เกินค่าที่คุณกำหนด เช่น 0.01 สำหรับหนึ่งสตางค์

เมื่อไม่มีคีย์ร่วม

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

การรวมและการจับคู่: งานที่เกี่ยวข้อง

การเทียบถามว่าอะไรต่างกันระหว่างสองเวอร์ชันของตารางเดียวกัน ส่วนการรวม (join) ถามว่าสองตารางที่ต่างกันเชื่อมกันอย่างไร VLOOKUP เป็นการรวมที่ง่ายที่สุด โดยค้นหาคีย์ที่ตรงกันในอีกตารางหนึ่งแล้วส่งค่าจากตารางนั้นกลับมา มีกับดักสองอย่างที่ก่อให้เกิดความประหลาดใจส่วนใหญ่ อย่างแรก มันดูเฉพาะคอลัมน์แรกของช่วงข้อมูล ดังนั้นคีย์ต้องอยู่ทางซ้าย อย่างที่สอง มันคืนค่าการจับคู่แรกที่พบ ดังนั้นคีย์ที่ปรากฏสองครั้งจะถูกลดเหลือหนึ่งแถวโดยไม่มีการแจ้งเตือน การไม่ใส่อาร์กิวเมนต์ตัวสุดท้ายยังทำให้มันเปลี่ยนไปใช้การจับคู่แบบโดยประมาณอีกด้วย XLOOKUP ไม่ต้องให้คีย์อยู่ทางซ้าย แต่ก็ยังคืนค่าการจับคู่เพียงหนึ่งรายการต่อการค้นหาหนึ่งครั้ง

รวมสเปรดชีตสองไฟล์ด้วยคอลัมน์ที่ใช้ร่วมกัน ทำงานเดียวกันโดยไม่ต้องใช้สูตร เลือกคีย์ในแต่ละตารางและประเภทการรวม:

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

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

ชื่อที่สะกดต่างกัน

คีย์ที่ตรงกันทุกตัวอักษรจะล้มเหลวเมื่อสิ่งเดียวกันถูกเขียนสองแบบ เช่น "Jon Smith" กับ "John Smith" หรือ "Müller" กับ "Mueller" การจับคู่แบบใกล้เคียง จะจับคู่ชื่อแต่ละชื่อในรายการหนึ่งกับชื่อที่ใกล้ที่สุดในอีกรายการพร้อมคะแนน คะแนนคือค่าที่สูงกว่าของการวัดสองแบบ แบบแรกเทียบตัวอักษรตามลำดับและให้คะแนนเมื่อจุดเริ่มต้นเหมือนกัน ซึ่งเหมาะกับ "Smith" กับ "Smyth" แบบที่สองเทียบเป็นคำ ดังนั้นชื่อที่ทุกคำปรากฏในอีกชื่อจะได้ 100 ให้ระวังเมื่อเห็น 100 และชื่อหนึ่งมีคำเพิ่มมา เครื่องมือจะไม่สนใจเครื่องหมายกำกับเสียงและเครื่องหมายวรรคตอน และอาจตัดคำที่บอกประเภทบริษัท เช่น Inc หรือ Ltd ออกไป คะแนนยังเป็นเพียงการประมาณ ดังนั้นให้อ่านคู่ที่จับได้ก่อนยอมรับ

กรณีพิเศษ

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

ขั้นตอนแบบย่อ

  1. เลือกคอลัมน์คีย์ในไฟล์ทั้งสอง และตรวจว่าค่าไม่ซ้ำกัน
  2. เทียบตามคีย์ และเปิดกฎตัวพิมพ์กับช่องว่างเฉพาะเมื่อความต่างนั้นไม่สำคัญ
  3. ข้ามคอลัมน์ที่เปลี่ยนทุกครั้งที่บันทึก
  4. ตรวจยอดรวม เมื่อคีย์ไม่ซ้ำกัน ไม่เปลี่ยนแปลง + เปลี่ยนแปลง + ถูกลบ จะเท่ากับจำนวนแถวของไฟล์เก่า และ ไม่เปลี่ยนแปลง + เปลี่ยนแปลง + เพิ่มใหม่ จะเท่ากับจำนวนแถวของไฟล์ใหม่

คำตอบแบบสั้น

ทำไมแถวเดียวที่แทรกเข้ามาทำให้ทุกอย่างถูกทำเครื่องหมายว่าเปลี่ยน?

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

ทำไมสองไฟล์ที่มีตัวเลขเหมือนกันจึงแสดงว่ามีการเปลี่ยนแปลง?

ค่าน่าจะถูกเก็บเป็นข้อความ หรือจัดรูปแบบต่างกัน ให้ตรวจชนิดข้อมูลของคอลัมน์

แปลจาก ฉบับภาษาอังกฤษ ด้วยความช่วยเหลือของ AI

ความคิดเห็น

    ยังไม่มีความคิดเห็น มาเป็นคนแรกกันเลย

    คะแนนของคุณ (ไม่บังคับ)

    อีเมลของคุณจะไม่ถูกแสดงหรือเก็บไว้

    ปกของ Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    เหตุใดชุดข้อมูลสาธารณะ ไม่เสียค่าใช้จ่าย และเปิดให้ใช้ได้อย่างอิสระ จะมีบทบาทต่อปัญญาประดิษฐ์ทั่วไป (AGI) พอ ๆ กับอัลกอริทึมและพลังประมวลผล

    $4.99ซื้อบน Gumroadฉบับภาษาอังกฤษ