Panduan memulai library
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Buat library Apps Script yang dapat Anda gunakan untuk menghapus baris duplikat dalam data spreadsheet.
Tujuan
- Siapkan skrip.
- Jalankan skrip.
Prasyarat
Untuk menggunakan sampel 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:
- Login ke Akun Google Anda.
- Untuk membuka editor skrip, buka script.google.com.
- Di kiri atas, klik Project baru.
Hapus semua kode di editor skrip dan tempel kode di bawah.
Klik Simpan
.
Di kiri atas, klik Untitled project.
Beri nama skrip Anda Remove duplicate rows, lalu klik Rename.
Klik Deploy > Deployment baru.
Di sebelah Pilih jenis, klik Aktifkan jenis deployment
> Library.
Masukkan deskripsi library, seperti Hapus baris duplikat. Siapa saja yang memiliki akses ke pustaka dapat melihat deskripsi ini.
Klik Deploy.
Di sebelah kiri, klik Project settings
.
Di bagian IDs, salin ID skrip untuk digunakan di langkah berikutnya.
Jalankan skrip:
Untuk menggunakan library, Anda harus memiliki setidaknya izin lihat untuk project Apps Script-nya. Karena Anda membuat library, Anda memiliki
izin yang diperlukan
untuk menggunakannya. Jika Anda ingin mengizinkan orang lain menggunakan library, beri mereka izin lihat untuk project Apps Script.
Untuk menggunakan library, lakukan langkah-langkah berikut:
- Buka spreadsheet Google Spreadsheet yang memiliki data dengan baris duplikat. Untuk menggunakan
contoh spreadsheet, buat salinan spreadsheet Contoh baris duplikat.
- Klik Ekstensi > Apps Script.
- Di samping Perpustakaan, klik Tambahkan perpustakaan
add.
- Di bagian Script ID, tempelkan ID skrip dari project Apps Script
pustaka yang Anda salin di bagian sebelumnya.
- Klik Cari.
- Di bagian Version, pilih 1.
- Klik Tambahkan.
Hapus semua kode di editor skrip dan tempel kode di bawah.
function runLibrary() {
Removeduplicaterows.removeDuplicates();
}
Di dropdown fungsi, pilih runLibrary.
Klik Run.
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:
Melihat kode sumber
Pertama, skrip membuat satu panggilan ke spreadsheet untuk mengambil semua data. Anda dapat memilih untuk membaca baris sheet satu per satu, tetapi operasi JavaScript jauh lebih cepat daripada berkomunikasi dengan layanan lain seperti Spreadsheet. Semakin sedikit panggilan yang Anda lakukan, semakin cepat prosesnya. Hal ini penting karena setiap eksekusi skrip memiliki waktu berjalan maksimum 6 menit.
Variabel data
adalah array 2 dimensi JavaScript yang berisi
semua nilai dalam sheet. newData
adalah array kosong tempat
skrip menempatkan semua baris yang tidak duplikat.
Loop for
pertama melakukan iterasi pada setiap baris dalam array 2 dimensi data
. Untuk setiap baris, loop kedua menguji apakah baris lain dengan
data yang cocok sudah ada dalam array newData
. Jika bukan duplikat, baris akan didorong ke dalam array newData
.
Terakhir, skrip akan menghapus konten yang ada di sheet dan menyisipkan konten array newData
.
Modifikasi
Anda dapat mengedit pustaka sesering yang Anda inginkan agar sesuai dengan kebutuhan Anda. Berikut adalah modifikasi opsional.
Menghapus baris dengan data yang cocok di beberapa kolom
Daripada menghapus baris yang cocok sepenuhnya, Anda mungkin ingin menghapus baris dengan
data yang cocok hanya di 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 bersyarat di atas menemukan duplikat setiap kali dua baris memiliki
data yang sama di kolom pertama dan kedua sheet.
Kontributor
Contoh ini dibuat oleh Romain Vialard, seorang Pakar Developer Google. Ikuti
Romain di Twitter @romain_vialard.
Contoh ini dikelola oleh Google dengan bantuan Pakar Developer Google.
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-31 UTC.
[null,null,["Terakhir diperbarui pada 2025-08-31 UTC."],[[["\u003cp\u003eThis guide provides step-by-step instructions to create an Apps Script library that removes duplicate rows from Google Sheets data.\u003c/p\u003e\n"],["\u003cp\u003eThe library uses a JavaScript function to identify and remove duplicate rows by comparing all column values within each row.\u003c/p\u003e\n"],["\u003cp\u003eUsers need a Google Account and a web browser to implement this solution, which involves setting up, deploying, and running the script within a spreadsheet.\u003c/p\u003e\n"],["\u003cp\u003eThe provided code can be modified to remove rows based on matching data in specific columns, enhancing the library's functionality.\u003c/p\u003e\n"]]],[],null,["# Library quickstart\n\nBuild an [Apps Script library](/apps-script/guides/libraries) that you can use to remove duplicate rows in spreadsheet data.\n\nObjectives\n----------\n\n- Set up the script.\n- Run the script.\n\nPrerequisites\n-------------\n\nTo use this sample, you need the following prerequisites:\n\n- A Google Account (Google Workspace accounts might require administrator approval).\n- A web browser with access to the internet.\n\nSet up the script\n-----------------\n\nTo build the library, take the following steps:\n\n1. Sign in to your Google Account.\n2. To open the script editor, go to [script.google.com](https://script.google.com/home).\n3. At the top left, click **New project**.\n4. Delete any code in the script editor and paste in the code below.\n\n sheets/removingDuplicates/removingDuplicates.gs \n [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n ```javascript\n /**\n * Removes duplicate rows from the current sheet.\n */\n function removeDuplicates() {\n const sheet = SpreadsheetApp.getActiveSheet();\n const data = sheet.getDataRange().getValues();\n const uniqueData = {};\n for (let row of data) {\n const key = row.join();\n uniqueData[key] = uniqueData[key] || row;\n }\n sheet.clearContents();\n const newData = Object.values(uniqueData);\n sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);\n }\n ```\n5. Click Save .\n\n6. At the top left, click **Untitled project**.\n\n7. Name your script **Remove duplicate rows** and click **Rename**.\n\n8. Click **Deploy** \\\u003e **New deployment**.\n\n9. Next to **Select type** click Enable deployment types\n\n \\\u003e **Library**.\n\n10. Enter a description of the library, such as **Remove duplicate rows**. Anyone\n with access to the library can view this description.\n\n11. Click **Deploy**.\n\n12. At the left, click **Project settings** .\n\n13. Under **IDs**, copy the script ID for use in a later step.\n\nRun the script\n--------------\n\nTo use a library, you must have at least view permissions for its\nApps Script project. Since you created the library, you have the\nrequired permissions\nto use it. If you want to let others use the library, give them view permission\nfor the Apps Script project.\n\nTo use the library, take the following steps:\n\n1. Open a Google Sheets spreadsheet that has data with duplicate rows. To use a sample spreadsheet, [make a copy of the **Sample duplicate rows** spreadsheet](https://docs.google.com/spreadsheets/d/1_Tcb0kokQIYCEz_nWnxUHZp8nwTysjjxucMmVZ0DeSg/copy?usp=sharing).\n2. Click **Extensions** \\\u003e **Apps Script**.\n3. Next to **Libraries** , click Add a library add.\n4. In the **Script ID** section, paste the script ID from the library Apps Script project you copied in the previous section.\n5. Click **Look up**.\n6. In the **Version** section, select **1**.\n7. Click **Add**.\n8. Delete any code in the script editor and paste in the code below.\n\n function runLibrary() {\n Removeduplicaterows.removeDuplicates();\n }\n\n9. In the function dropdown, select **runLibrary**.\n\n10. Click **Run**.\n\n11. Return to the spreadsheet to view the updated data without duplicate rows.\n\nReview the code\n---------------\n\nTo review the Apps Script code for this solution, click **View source code**\nbelow: \n\n#### View the source code\n\n\nFirst, the script makes a single call to the spreadsheet to retrieve all the\ndata. You can choose to read the sheet row by row, but JavaScript operations are\nconsiderably faster than talking to other services like Spreadsheet. The fewer\ncalls you make, the faster it goes. This is important because each script\nexecution has a maximum run time of 6 minutes. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nconst sheet = SpreadsheetApp.getActiveSheet();\nconst data = sheet.getDataRange().getValues();\n```\n\n\nThe variable `data` is a JavaScript 2-dimensional array that contains\nall the values in the sheet. `newData` is an empty array where the\nscript puts all the non-duplicate rows. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nconst newData = Object.values(uniqueData);\n```\n\n\nThe first `for` loop iterates over each row in the `data`\n2-dimensional array. For each row, the second loop tests if another row with\nmatching data already exists in the `newData` array. If it's not a\nduplicate, the row is pushed into the `newData` array. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nuniqueData[key] = uniqueData[key] || row;\n```\n\n\nFinally, the script deletes the existing content of the sheet and inserts\nthe content of the `newData` array. \nsheets/removingDuplicates/removingDuplicates.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/removingDuplicates/removingDuplicates.gs) \n\n```javascript\nsheet.clearContents();\nconst newData = Object.values(uniqueData);\nsheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);\n```\n\nModifications\n-------------\n\nYou can edit the library as much as you'd like to fit your needs. Below is an\noptional modification. \n\n#### Remove rows with matching data in some columns\n\n\nInstead of removing rows that match entirely, you might want to remove rows with\nmatching data in just one or two of the columns. To do that, you can change the\nconditional statement.\n\n\nIn the sample code, update the following line: \n\n```transact-sql\n if(row.join() == newData[j].join()){\n duplicate = true;\n }\n```\n\n\nReplace the line with the following code: \n\n```transact-sql\n if(row[0] == newData[j][0] && row[1] == newData[j][1]){\n duplicate = true;\n }\n```\n\n\nThe above conditional statement finds duplicates each time two rows have the\nsame data in the first and second columns of the sheet.\n\nContributors\n------------\n\nThis sample was created by Romain Vialard, a Google Developer Expert. Follow\nRomain on Twitter [@romain_vialard](https://twitter.com/romain_vialard).\n\nThis sample is maintained by Google with the help of Google Developer Experts.\n\nNext steps\n----------\n\n- [Libraries](/apps-script/guides/libraries)\n- [Create and manage deployments](/apps-script/concepts/deployments)"]]