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 ö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:

  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ı silip 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ızı Yinelenen satırları kaldır olarak adlandırın ve Yeniden adlandır'ı tıklayın.

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

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

  10. 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.

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

  12. Sol tarafta 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ı 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:

  1. 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.
  2. Uzantılar > Apps Komut Dosyası'nı tıklayın.
  3. Kitaplıklar'ın yanında Kitaplık ekle'yi tıklayın.
  4. 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.
  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ı silip aşağıdaki kodu yapıştırın.

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

  10. Çalıştır'ı tıklayın.

  11. 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.

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 tüm kopya olmayan 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 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.

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

Son olarak, komut dosyası sayfadaki mevcut içeriği 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 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