สร้างคลัง Apps Script ที่คุณใช้เพื่อนำแถวที่ซ้ำกันในข้อมูลสเปรดชีตออกได้
วัตถุประสงค์
- ตั้งค่าสคริปต์
- เรียกใช้สคริปต์
ข้อกำหนดเบื้องต้น
หากต้องการใช้ตัวอย่างนี้ คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้
- บัญชี Google (บัญชี Google Workspace อาจต้อง ได้รับการอนุมัติจากผู้ดูแลระบบ)
- เว็บเบราว์เซอร์ที่มีสิทธิ์เข้าถึงอินเทอร์เน็ต
ตั้งค่าสคริปต์
หากต้องการสร้างคลัง ให้ทำตามขั้นตอนต่อไปนี้
- ลงชื่อเข้าใช้บัญชี Google
- หากต้องการเปิดเครื่องมือแก้ไขสคริปต์ ให้ไปที่ script.google.com
- คลิกโปรเจ็กต์ใหม่ที่ด้านซ้ายบน
ลบโค้ดในตัวแก้ไขสคริปต์ แล้ววางโค้ดด้านล่าง
คลิกบันทึก
คลิกโปรเจ็กต์ที่ไม่มีชื่อที่ด้านซ้ายบน
ตั้งชื่อสคริปต์ว่า Remove duplicate rows แล้วคลิก Rename
คลิกทำให้ใช้งานได้ > การทำให้ใช้งานได้ใหม่
คลิกเปิดใช้ประเภทการติดตั้งใช้งาน
> คลัง ข้างเลือกประเภท
ป้อนคำอธิบายของไลบรารี เช่น นำแถวที่ซ้ำกันออก ทุกคน ที่มีสิทธิ์เข้าถึงคลังจะดูคำอธิบายนี้ได้
คลิกทำให้ใช้งานได้
คลิกการตั้งค่าโปรเจ็กต์
ทางด้านซ้าย
ในส่วนรหัส ให้คัดลอกรหัสสคริปต์เพื่อใช้ในขั้นตอนถัดไป
เรียกใช้สคริปต์
หากต้องการใช้ไลบรารี คุณต้องมีสิทธิ์ดูโปรเจ็กต์ 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
จะวนซ้ำแต่ละแถวใน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 แถวมีข้อมูลเดียวกันในคอลัมน์แรกและคอลัมน์ที่ 2 ของชีต
ผู้ร่วมให้ข้อมูล
ตัวอย่างนี้สร้างโดย Romain Vialard ซึ่งเป็น Google Developer Expert ติดตาม Romain บน Twitter ได้ที่ @romain_vialard
ตัวอย่างนี้ได้รับการดูแลโดย Google โดยได้รับความช่วยเหลือจาก Google Developer Expert