Panduan memulai library

Buat library Apps Script yang dapat Anda gunakan untuk menghapus baris duplikat dalam data spreadsheet.

Tujuan

  • Siapkan skrip.
  • Jalankan skrip.

Prasyarat

Untuk menggunakan contoh ini, Anda memerlukan prasyarat berikut:

  • Akun Google (Akun Google Workspace mungkin memerlukan persetujuan administrator).
  • Browser web dengan akses ke internet.

Menyiapkan skrip

Untuk membuat library, lakukan langkah-langkah berikut:

  1. Login ke Akun Google Anda.
  2. Untuk membuka editor skrip, buka script.google.com.
  3. Di kiri atas, klik Project baru.
  4. Hapus kode apa pun di editor skrip dan tempelkan kode di bawah ini.

    sheets/removingDuplicates/removingDuplicates.gs
    /**
     * Removes duplicate rows from the current sheet.
     */
    function removeDuplicates() {
      const sheet = SpreadsheetApp.getActiveSheet();
      const data = sheet.getDataRange().getValues();
      const uniqueData = {};
      for (let row of data) {
        const key = row.join();
        uniqueData[key] = uniqueData[key] || row;
      }
      sheet.clearContents();
      const newData = Object.values(uniqueData);
      sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
    }
  5. Klik Simpan Ikon simpan.

  6. Di kiri atas, klik Project tanpa judul.

  7. Beri nama skrip Hapus baris duplikat, lalu klik Ganti nama.

  8. Klik Deploy > Deployment baru.

  9. Di sebelah Pilih jenis klik Aktifkan jenis deployment Ikon untuk mengaktifkan jenis deployment > Koleksi.

  10. Masukkan deskripsi library, seperti Menghapus baris duplikat. Semua yang memiliki akses ke library dapat melihat deskripsi ini.

  11. Klik Deploy.

  12. Di sebelah kiri, klik Project settings Ikon untuk setelan project.

  13. Di bagian ID, salin ID skrip untuk digunakan di langkah berikutnya.

Jalankan skrip:

Untuk menggunakan library, Anda harus memiliki setidaknya izin lihat Project Apps Script. Karena Anda membuat library, Anda memiliki izin yang diperlukan untuk menggunakannya. Jika Anda ingin mengizinkan orang lain menggunakan library, berikan izin lihat kepada mereka untuk project Apps Script.

Untuk menggunakan library, lakukan langkah-langkah berikut:

  1. Buka spreadsheet Google Spreadsheet yang memiliki data dengan baris duplikat. Untuk menggunakan contoh spreadsheet, buat salinan spreadsheet Contoh baris duplikat.
  2. Klik Ekstensi > Apps Script..
  3. Di samping Koleksi, klik Tambahkan koleksi .
  4. Di bagian Script ID, tempel ID skrip dari Apps Script library proyek yang Anda salin di bagian sebelumnya.
  5. Klik Cari.
  6. Di bagian Versi, pilih 1.
  7. Klik Tambahkan.
  8. Hapus kode apa pun di editor skrip dan tempelkan kode di bawah ini.

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. Di dropdown fungsi, pilih runLibrary.

  10. Klik Run.

  11. Kembali ke spreadsheet untuk melihat data yang diperbarui tanpa baris duplikat.

Meninjau kode

Untuk meninjau kode Apps Script untuk solusi ini, klik Lihat kode sumber di bawah ini:

Melihat kode sumber

Pertama, skrip melakukan panggilan tunggal ke {i>spreadsheet<i} untuk mengambil semua layanan otomatis dan data skalabel. Anda dapat memilih untuk membaca {i>sheet<i} baris demi baris, tetapi operasi JavaScript jauh lebih cepat daripada berbicara dengan layanan lain seperti Spreadsheet. Semakin sedikit yang Anda lakukan, maka akan semakin cepat. Hal ini penting karena setiap skrip memiliki runtime maksimum 6 menit.

sheets/removingDuplicates/removingDuplicates.gs
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();

Variabel data adalah array 2 dimensi JavaScript yang berisi semua nilai dalam {i>sheet<i}. newData adalah array kosong tempat skrip menempatkan semua baris yang tidak duplikat.

sheets/removingDuplicates/removingDuplicates.gs
const newData = Object.values(uniqueData);

Loop for pertama melakukan iterasi pada setiap baris di data Array 2 dimensi. Untuk setiap baris, loop kedua menguji apakah baris lain dengan data yang cocok sudah ada dalam array newData. Jika produk tersebut bukan duplikat, baris didorong ke array newData.

sheets/removingDuplicates/removingDuplicates.gs
uniqueData[key] = uniqueData[key] || row;

Terakhir, skrip menghapus konten sheet yang ada dan menyisipkannya isi array newData.

sheets/removingDuplicates/removingDuplicates.gs
sheet.clearContents();
const newData = Object.values(uniqueData);
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

Modifikasi

Anda dapat mengedit library sesuai keinginan sesuai kebutuhan. Berikut adalah atau modifikasi opsional.

Menghapus baris dengan data yang cocok di beberapa kolom

Alih-alih menghapus baris yang sepenuhnya cocok, Anda mungkin ingin menghapus baris dengan mencocokkan data hanya dengan satu atau dua kolom. Untuk melakukannya, Anda dapat mengubah pernyataan bersyarat.

Dalam kode contoh, perbarui baris berikut:

    if(row.join() == newData[j].join()){
      duplicate = true;
    }

Ganti baris dengan kode berikut:

    if(row[0] == newData[j][0] && row[1] == newData[j][1]){
      duplicate = true;
    }

Pernyataan kondisional di atas menemukan duplikat setiap kali dua baris memiliki data yang sama di kolom pertama dan kedua {i>sheet<i} itu.

Kontributor

Contoh ini dibuat oleh Romain Vialard, seorang Pakar Google Developers. Ikuti Romain di Twitter @romain_vialard.

Sampel ini dikelola oleh Google dengan bantuan Pakar Google Developers.

Langkah berikutnya