Kitaplık hızlı başlangıç kılavuzu

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 önkoşullara ihtiyacınız vardır:

  • Google Hesabı (Google Workspace hesapları için yönetici onayı gerekebilir).
  • İnternet erişimi olan bir web tarayıcısı.

Komut dosyasını ayarlayın

Kitaplığı oluşturmak için aşağıdaki adımları uygulayın:

  1. Google Hesabınızda oturum açın.
  2. Komut dosyası düzenleyiciyi açmak için script.google.com adresine gidin.
  3. Sol üstte Yeni proje'yi tıklayın.
  4. Komut dosyası düzenleyicideki tüm kodları silin ve aşağıdaki kodu yapıştırın.

    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. Kaydet'i Kaydet simgesi tıklayın.

  6. Sol üstte Adsız proje'yi tıklayın.

  7. Komut dosyanıza Yinelenen satırları kaldırın adını verin ve Yeniden adlandır'ı tıklayın.

  8. Dağıt > Yeni dağıtım'ı tıklayın.

  9. Tür seç'in yanında, Dağıtım türlerini etkinleştir'i tıklayın Dağıtım türlerini etkinleştirme simgesi > Kitaplık'ı tıklayın.

  10. Kitaplık için Yinelenen satırları kaldır gibi bir açıklama girin. Kitaplığa erişimi olan herkes bu açıklamayı görebilir.

  11. Dağıt'ı tıklayın.

  12. Solda Proje ayarları'nı Proje ayarları simgesi tıklayın.

  13. 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ı projesiyle ilgili en azından görüntüleme izinlerine sahip olmanız gerekir. Kitaplığı oluşturduğunuzdan beri kullanmak için gerekli izinlere sahipsiniz. Başkalarının kitaplığı kullanmasına izin vermek istiyorsanız bu kullanıcılara Apps Komut Dosyası projesi için görüntüleme izni verin.

Kitaplığı kullanmak için aşağıdaki adımları uygulayın:

  1. Yinelenen satırlara sahip veriler içeren bir Google E-Tablolar e-tablosunu açın. Örnek e-tablo kullanmak için Örnek yinelenen satırlar e-tablosunun bir kopyasını oluşturun.
  2. Uzantılar > Apps Komut Dosyası'nı tıklayın.
  3. Kitaplıklar'ın yanında, Kitaplık ekle'yi tıklayın.
  4. Komut dosyası kimliği bölümüne, önceki bölümde kopyaladığınız kitaplık Apps Komut Dosyası projesindeki komut dosyası kimliğini yapıştırın.
  5. Ara'yı tıklayın.
  6. Sürüm bölümünde 1'i seçin.
  7. Ekle'yi tıklayın.
  8. Komut dosyası düzenleyicideki tüm kodları silin ve aşağıdaki kodu yapıştırın.

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. İşlev açılır listesinde runLibrary'ı seçin.

  10. Run'ı (Çalıştır) tıklayın.

  11. Yinelenen satırlar olmadan güncellenmiş verileri görüntülemek için e-tabloya dönün.

Kodu inceleyin

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ıda bulunur. Sayfayı satır satır okumayı seçebilirsiniz ancak JavaScript işlemleri, E-Tablo gibi diğer hizmetlerle iletişim kurmaktan çok daha hızlıdır. Ne kadar az telefon araması yaparsanız o kadar hızlı çalışır. Her bir komut dosyası yürütme işleminin maksimum çalışma süresi 6 dakika olduğundan bu önemlidir.

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

data değişkeni, sayfadaki tüm değerleri içeren 2 boyutlu bir JavaScript dizisidir. newData, komut dosyasının yinelenmeyen tüm satırları yerleştirdiği boş bir dizidir.

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

İlk for döngüsü, data 2 boyutlu dizisindeki her satır üzerinde yinelenir. Her satır için ikinci döngü, newData dizisinde eşleşen verilere sahip başka bir satırın zaten var olup olmadığını test eder. Satır kopya değilse newData dizisine aktarılır.

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

Son olarak, komut dosyası sayfanın mevcut içeriğini siler ve newData dizisinin içeriğini ekler.

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

Değişiklikler

Kitaplığı, ihtiyaçlarınıza göre istediğiniz kadar düzenleyebilirsiniz. Aşağıda isteğe bağlı bir değişiklik verilmiştir.

Bazı sütunlardaki eşleşen verilere sahip satırları kaldırın

Eşleşen satırları tamamen kaldırmak yerine, sütunlardan yalnızca bir veya ikisinde eşleşen verilere sahip olan 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, sayfanın birinci ve ikinci sütunundaki iki satırın aynı verilere sahip olduğu her durumda yinelemeleri bulur.

Katkıda bulunanlar

Bu örnek, Google Geliştirici Uzmanı Romain Vialard tarafından oluşturulmuştur. Romain'i @romain_vialard Twitter'da takip edin.

Bu örnek, Google Geliştirici Uzmanlarının yardımıyla Google tarafından yönetilir.

Sonraki adımlar