Kitaplık hızlı başlangıç kılavuzu
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
E-tablo verilerindeki yinelenen satırları kaldırmak için kullanabileceğiniz bir Apps Komut Dosyası kitaplığı oluşturun.
Hedefler
- Komut dosyasını ayarlayın.
- Komut dosyasını çalıştırın.
Ön koşullar
Bu örneği kullanmak için aşağıdaki ön koşulları karşılamanız gerekir:
- Google Hesabı (Google Workspace hesapları için yönetici onayı gerekebilir).
- İnternete erişimi olan bir web tarayıcısı.
Komut dosyasını ayarlama
Kitaplığı oluşturmak için aşağıdaki adımları uygulayın:
- Google Hesabınızda oturum açın.
- Komut dosyası düzenleyiciyi açmak için script.google.com adresine gidin.
- Sol üstte Yeni proje'yi tıklayın.
Komut dosyası düzenleyicideki tüm kodları silip aşağıdaki kodu yapıştırın.
Kaydet'i
tıklayın.
Sol üstte Adsız proje'yi tıklayın.
Komut dosyanızı Yinelenen satırları kaldır olarak adlandırın ve Yeniden adlandır'ı tıklayın.
Dağıt > Yeni dağıtım'ı tıklayın.
Tür seçin'in yanındaki Dağıtım türlerini etkinleştir'i
> Kitaplık'ı tıklayın.
Kitaplığın açıklamasını girin (ör. Yinelenen satırları kaldır). Kitaplığa erişimi olan herkes bu açıklamayı görüntüleyebilir.
Dağıt'ı tıklayın.
Sol tarafta Proje ayarları'nı
tıklayın.
Kimlikler bölümünde, sonraki bir adımda kullanmak üzere komut dosyası kimliğini kopyalayın.
Komut dosyasını çalıştırma
Bir kitaplığı kullanmak için Apps Komut Dosyası projesinde en az görüntüleme izninizin olması gerekir. Kitaplığı siz oluşturduğunuz için kullanmak için gerekli izinlere sahipsiniz. Kitaplığı başkalarının kullanmasına izin vermek istiyorsanız Apps Komut Dosyası projesi için görüntüleme izni verin.
Kitaplığı kullanmak için aşağıdaki adımları uygulayın:
- Yinelenen satırlarla veri içeren bir Google E-Tablolar e-tablosu açın. Örnek bir e-tablo kullanmak için Örnek yinelenen satırlar e-tablosunun bir kopyasını oluşturun.
- Uzantılar > Apps Komut Dosyası'nı tıklayın.
- Kitaplıklar'ın yanında Kitaplık ekle'yi add tıklayın.
- Script ID (Komut Dosyası Kimliği) bölümüne, önceki bölümde kopyaladığınız kitaplık Apps Komut Dosyası projesinin komut dosyası kimliğini yapıştırın.
- Ara'yı tıklayın.
- Sürüm bölümünde 1'i seçin.
- Ekle'yi tıklayın.
Komut dosyası düzenleyicideki tüm kodları silip aşağıdaki kodu yapıştırın.
function runLibrary() {
Removeduplicaterows.removeDuplicates();
}
İşlev açılır listesinde runLibrary'yi seçin.
Çalıştır'ı tıklayın.
Yinelenen satırları içermeyen güncellenmiş verileri görüntülemek için e-tabloya dönün.
Kodu inceleme
Bu çözümün Apps Komut Dosyası kodunu incelemek için aşağıdaki Kaynak kodu görüntüle'yi tıklayın:
Kaynak kodunu görüntüleyin
İlk olarak, komut dosyası tüm verileri almak için e-tabloya tek bir çağrı yapar. E-tabloyu satır satır okumayı tercih edebilirsiniz ancak JavaScript işlemleri, E-tablo gibi diğer hizmetlerle iletişime geçmekten çok daha hızlıdır. Ne kadar az arama yaparsanız o kadar hızlı ilerler. Her komut dosyası yürütme işleminin maksimum çalışma süresi 6 dakika olduğundan bu önemlidir.
data
değişkeni, sayfadaki tüm değerleri içeren 2 boyutlu bir JavaScript dizisidir. newData
, komut dosyasının tüm kopya olmayan satırları yerleştirdiği boş bir dizidir.
İlk for
döngüsü, data
2 boyutlu dizideki her satırda yinelenir. Her satır için ikinci döngü, eşleşen verileri içeren başka bir satırın newData
dizisinde mevcut olup olmadığını test eder. Yinelenen bir giriş değilse satır, newData
dizisine aktarılır.
Son olarak, komut dosyası sayfadaki mevcut içeriği siler ve newData
dizisinin içeriğini ekler.
Değişiklikler
Kitaplığı ihtiyaçlarınıza uyacak şekilde istediğiniz kadar düzenleyebilirsiniz. Aşağıda isteğe bağlı bir değişiklik verilmiştir.
Bazı sütunlarda eşleşen veriler içeren satırları kaldırma
Tamamen eşleşen satırları kaldırmak yerine, yalnızca bir veya iki sütunda eşleşen veriler içeren satırları kaldırmak isteyebilirsiniz. Bunu yapmak için koşullu ifadeyi değiştirebilirsiniz.
Örnek kodda aşağıdaki satırı güncelleyin:
if(row.join() == newData[j].join()){
duplicate = true;
}
Satırı aşağıdaki kodla değiştirin:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){
duplicate = true;
}
Yukarıdaki koşullu ifade, iki satırın elektronik tablonun birinci ve ikinci sütunlarında aynı verileri içerdiği her durumda yinelenenleri bulur.
Katkıda bulunanlar
Bu örnek, Google Developer Expert'i Romain Vialard tarafından oluşturuldu. Romain'i Twitter'da @romain_vialard adresinden takip edin.
Bu örnek, Google Geliştirici Uzmanları'nın yardımıyla Google tarafından yönetilir.
Sonraki adımlar
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-31 UTC.
[null,null,["Son güncelleme tarihi: 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)"]]