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