สร้างไลบรารี Apps Script ที่คุณสามารถใช้เพื่อนำแถวที่ซ้ำกันออกจากข้อมูลสเปรดชีต
วัตถุประสงค์
- ตั้งค่าสคริปต์
- เรียกใช้สคริปต์
ข้อกำหนดเบื้องต้น
หากต้องการใช้ตัวอย่างนี้ คุณต้องมีข้อกําหนดเบื้องต้นต่อไปนี้
- บัญชี Google (บัญชี Google Workspace อาจต้องได้รับอนุมัติจากผู้ดูแลระบบ)
- เว็บเบราว์เซอร์ที่มีสิทธิ์เข้าถึงอินเทอร์เน็ต
ตั้งค่าสคริปต์
หากต้องการสร้างคลัง ให้ทำตามขั้นตอนต่อไปนี้
- ลงชื่อเข้าใช้บัญชี Google
- หากต้องการเปิดเครื่องมือแก้ไขสคริปต์ ให้ไปที่ script.google.com
- คลิกโปรเจ็กต์ใหม่ที่ด้านซ้ายบน
ลบโค้ดทั้งหมดในตัวแก้ไขสคริปต์ แล้ววางโค้ดด้านล่าง
คลิกบันทึก
คลิกโปรเจ็กต์ที่ไม่มีชื่อที่ด้านซ้ายบน
ตั้งชื่อสคริปต์เป็น นำแถวที่ซ้ำกันออก แล้วคลิกเปลี่ยนชื่อ
คลิกทำให้ใช้งานได้ > ทำให้ใช้งานได้ใหม่
ข้างเลือกประเภท ให้คลิกเปิดใช้ประเภทการติดตั้งใช้งาน > คลัง
ป้อนคําอธิบายคลัง เช่น นําแถวที่ซ้ำกันออก ทุกคนที่มีสิทธิ์เข้าถึงคลังจะดูคําอธิบายนี้ได้
คลิกทำให้ใช้งานได้
คลิกการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
ในส่วนรหัส ให้คัดลอกรหัสสคริปต์เพื่อใช้ในขั้นตอนถัดไป
เรียกใช้สคริปต์
หากต้องการใช้ไลบรารี คุณต้องมีสิทธิ์ดูเป็นอย่างน้อยสําหรับโปรเจ็กต์ Apps Script ของไลบรารีนั้น เนื่องจากคุณเป็นผู้สร้างคลัง คุณจึงมีสิทธิ์ที่จําเป็นเพื่อใช้คลัง หากต้องการอนุญาตให้ผู้อื่นใช้ไลบรารี ให้สิทธิ์ดูโครงการ Apps Script แก่บุคคลเหล่านั้น
หากต้องการใช้คลัง ให้ทำตามขั้นตอนต่อไปนี้
- เปิดสเปรดชีต Google ชีตที่มีข้อมูลซึ่งมีแถวซ้ำ หากต้องการใช้สเปรดชีตตัวอย่าง ให้ทำสำเนาสเปรดชีตตัวอย่างแถวที่ซ้ำกัน
- คลิกส่วนเสริม > Apps Script
- คลิกเพิ่มคลังข้างคลัง
- ในส่วนรหัสสคริปต์ ให้วางรหัสสคริปต์จากโปรเจ็กต์ Apps Script ของไลบรารีที่คุณคัดลอกไว้ในส่วนก่อนหน้า
- คลิกค้นหา
- เลือก 1 ในส่วนเวอร์ชัน
- คลิกเพิ่ม
ลบโค้ดทั้งหมดในตัวแก้ไขสคริปต์ แล้ววางโค้ดด้านล่าง
function runLibrary() { Removeduplicaterows.removeDuplicates(); }
เลือก runLibrary ในเมนูแบบเลื่อนลงของฟังก์ชัน
คลิกเรียกใช้
กลับไปที่สเปรดชีตเพื่อดูข้อมูลที่อัปเดตแล้วโดยไม่มีแถวที่ซ้ำกัน
ตรวจสอบโค้ด
หากต้องการตรวจสอบโค้ด Apps Script ของโซลูชันนี้ ให้คลิกดูซอร์สโค้ดด้านล่าง
ดูซอร์สโค้ด
ก่อนอื่น สคริปต์จะเรียกใช้สเปรดชีตเพียงครั้งเดียวเพื่อดึงข้อมูลทั้งหมด คุณเลือกที่จะอ่านชีตทีละแถวได้ แต่การดำเนินการ JavaScript จะเร็วกว่าการติดต่อกับบริการอื่นๆ เช่น สเปรดชีต ยิ่งคุณโทรน้อยเท่าไร กระบวนการก็จะยิ่งเร็วขึ้นเท่านั้น ซึ่งมีความสำคัญเนื่องจากการดำเนินการสคริปต์แต่ละรายการมีรันไทม์สูงสุด 6 นาที
ตัวแปร data
คืออาร์เรย์ 2 มิติของ JavaScript ที่มีค่าทั้งหมดในชีต newData
คืออาร์เรย์ว่างที่สคริปต์จะใส่แถวที่ไม่ซ้ำกันทั้งหมด
วงเล็บปีกกา for
แรกจะวนซ้ำแต่ละแถวในdata
آراย 2 มิติ สําหรับแต่ละแถว ลูปที่ 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 แถวที่มีข้อมูลเหมือนกันในคอลัมน์ที่ 1 และ 2 ของชีต
ผู้ร่วมให้ข้อมูล
ตัวอย่างนี้สร้างโดย Romain Vialard ซึ่งเป็น Google Developer Expert ติดตาม @romain_vialard บน Twitter
ตัวอย่างนี้ได้รับการดูแลโดย Google ด้วยความช่วยเหลือจากผู้เชี่ยวชาญด้านการพัฒนาซอฟต์แวร์ของ Google