สร้างไลบรารี Google Apps Script ที่คุณ ใช้เพื่อนำแถวที่ซ้ำกันในข้อมูลสเปรดชีตออกได้
วัตถุประสงค์
- ตั้งค่าสคริปต์
- เรียกใช้สคริปต์
ข้อกำหนดเบื้องต้น
หากต้องการใช้ตัวอย่างนี้ คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้
- บัญชี Google (บัญชี Google Workspace อาจต้องได้รับการอนุมัติจากผู้ดูแลระบบ)
- เว็บเบราว์เซอร์ที่เข้าถึงอินเทอร์เน็ตได้
ตั้งค่าสคริปต์
หากต้องการสร้างไลบรารี ให้ทำดังนี้
- ลงชื่อเข้าใช้บัญชี Google
- หากต้องการเปิดเครื่องมือแก้ไขสคริปต์ ให้ไปที่ script.google.com
- คลิกโปรเจ็กต์ใหม่ ที่ด้านซ้ายบน
ลบโค้ดในเครื่องมือแก้ไขสคริปต์ แล้ววางโค้ดต่อไปนี้
คลิกบันทึก
คลิกโปรเจ็กต์ไม่มีชื่อ ที่ด้านซ้ายบน
ตั้งชื่อสคริปต์ว่า Remove duplicate rows แล้วคลิกเปลี่ยนชื่อ
คลิก ทำให้ใช้งานได้ > การทำให้ใช้งานได้ใหม่
คลิกเปิดใช้ประเภทการทำให้ใช้งานได้
> ไลบรารี ข้างเลือกประเภท
ป้อนคำอธิบายของไลบรารี เช่น Remove duplicate rows ทุกคนที่มีสิทธิ์เข้าถึงไลบรารีจะดูคำอธิบายนี้ได้
คลิกทำให้ใช้งานได้
คลิกการตั้งค่าโปรเจ็กต์
ทางด้านซ้าย
คัดลอกรหัสสคริปต์ในส่วนรหัส เพื่อใช้ในขั้นตอนถัดไป
เรียกใช้สคริปต์
หากต้องการใช้ไลบรารี คุณต้องมีสิทธิ์ดูโปรเจ็กต์ Apps Script ของไลบรารีเป็นอย่างน้อย เนื่องจากคุณเป็นผู้สร้างไลบรารี คุณจึงมีสิทธิ์ที่จำเป็นในการใช้ไลบรารี หากต้องการอนุญาตให้ผู้อื่นใช้ไลบรารี ให้สิทธิ์การดูโปรเจ็กต์ Apps Script แก่บุคคลดังกล่าว
หากต้องการใช้ไลบรารี ให้ทำดังนี้
- เปิดสเปรดชีต Google ชีตที่มีข้อมูลซึ่งมีแถวที่ซ้ำกัน หากต้องการใช้ สเปรดชีตตัวอย่าง ให้ทำสำเนาสเปรดชีตตัวอย่างแถวที่ซ้ำกัน
- คลิกส่วนเสริม > Apps Script
- คลิกเพิ่มไลบรารี ข้างไลบรารี
- ในส่วนรหัสสคริปต์ ให้วางรหัสสคริปต์จากโปรเจ็กต์ Apps Script ของไลบรารีที่คุณคัดลอกไว้ในส่วนก่อนหน้า
- คลิกค้นหา
- เลือก 1 ในส่วนเวอร์ชัน
- คลิกเพิ่ม
ลบโค้ดในเครื่องมือแก้ไขสคริปต์ แล้ววางโค้ดต่อไปนี้
function runLibrary() { Removeduplicaterows.removeDuplicates(); }เลือก runLibrary ในเมนูแบบเลื่อนลงของฟังก์ชัน
คลิกเรียกใช้
กลับไปที่สเปรดชีตเพื่อดูข้อมูลที่อัปเดตแล้วซึ่งไม่มีแถวที่ซ้ำกัน
ตรวจสอบโค้ด
หากต้องการตรวจสอบโค้ด Apps Script สำหรับโซลูชันนี้ ให้คลิก ดูซอร์สโค้ด:
ดูซอร์สโค้ด
ขั้นแรก สคริปต์จะเรียกสเปรดชีตเพียงครั้งเดียวเพื่อดึงข้อมูลทั้งหมด คุณเลือกที่จะอ่านชีตทีละแถวได้ แต่การดำเนินการ JavaScript จะเร็วกว่าการสื่อสารกับบริการอื่นๆ เช่น สเปรดชีตอย่างมาก ยิ่งคุณเรียกใช้บริการน้อยลง การดำเนินการก็จะยิ่งเร็วขึ้น ซึ่งเป็นสิ่งสำคัญเนื่องจากการดำเนินการสคริปต์แต่ละครั้งมีเวลาดำเนินการสูงสุด 6 นาที
ตัวแปร data คืออาร์เรย์ 2 มิติของ JavaScript ที่มีค่าทั้งหมดในชีต newData คืออาร์เรย์ว่างที่สคริปต์จะใส่แถวที่ไม่ซ้ำกันทั้งหมด
ลูป for แรกจะวนซ้ำแต่ละแถวในอาร์เรย์ 2 มิติ data สำหรับแต่ละแถว ลูปที่ 2 จะทดสอบว่ามีแถวอื่นที่มีข้อมูลที่ตรงกันอยู่ในอาร์เรย์ newData หรือไม่ หากไม่ใช่แถวที่ซ้ำกัน ระบบจะส่งแถวไปยังอาร์เรย์ newData
สุดท้าย สคริปต์จะลบเนื้อหาที่มีอยู่ออกจากชีต แล้วแทรกเนื้อหาของอาร์เรย์ newData
การปรับเปลี่ยน
คุณสามารถแก้ไขไลบรารีได้มากเท่าที่ต้องการเพื่อให้ตรงกับความต้องการของคุณ ส่วนต่อไปนี้มีการปรับเปลี่ยนที่เลือกได้
นำแถวที่มีข้อมูลที่ตรงกันในบางคอลัมน์ออก
แทนที่จะนำแถวที่ตรงกันทั้งหมดออก คุณอาจต้องการนำแถวที่มีข้อมูลที่ตรงกันในคอลัมน์เพียง 1 หรือ 2 คอลัมน์ออก หากต้องการทำเช่นนั้น คุณสามารถเปลี่ยนคำสั่งแบบมีเงื่อนไขได้
ในโค้ดตัวอย่าง ให้อัปเดตบรรทัดต่อไปนี้
if(row.join() == newData[j].join()){ duplicate = true; }
แทนที่บรรทัดด้วยโค้ดต่อไปนี้
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
คำสั่งแบบมีเงื่อนไขก่อนหน้าจะค้นหารายการที่ซ้ำกันทุกครั้งที่ 2 แถวมีข้อมูลเดียวกันในคอลัมน์แรกและคอลัมน์ที่ 2 ของชีต
ผู้ร่วมให้ข้อมูล
ตัวอย่างนี้สร้างโดย Romain Vialard ซึ่งเป็นผู้เชี่ยวชาญด้านการพัฒนาของ Google ติดตาม Romain ได้ที่ Twitter @romain_vialard
ตัวอย่างนี้ได้รับการดูแลโดย Google โดยความช่วยเหลือจาก Google Developer Experts