Google E-Tablolar ile Apps Komut Dosyası'nın Temelleri #1: Makrolar ve Özel İşlevler

1. Apps Komut Dosyası'na hoş geldiniz

Apps Komut Dosyası nedir?

Apps Komut Dosyası, Google Workspace deneyiminizi otomatikleştirebilmenizi, özelleştirebilmenizi ve genişletebilmenizi sağlayan hızlı bir uygulama geliştirme platformudur. Apps Komut Dosyası ile Google Workspace'teki zorlu veya karmaşık işleri kolaylaştırarak zamandan ve emekten tasarruf edebilirsiniz.

Apps Komut Dosyası özellikleri arasında şunlar bulunur:

  • Apps Komut Dosyası'nın yerleşik hizmetleri, Google Workspace uygulama verilerinizi komut dosyalarıyla okumanıza, güncellemenize ve değiştirmenize olanak tanır.
  • Apps Komut Dosyası'nın tarayıcı içi kod düzenleyicisini kullanarak komut dosyaları oluşturabilirsiniz. Kod geliştirme yazılımı yüklemeniz veya çalıştırmanız gerekmez.
  • Google Workspace düzenleyicileri için, menü öğelerini, iletişim kutularını ve kenar çubuklarını kullanarak doğrudan bu düzenleyicilerden komut dosyalarını etkinleştirmenize olanak tanıyan kullanıcı arayüzleri tasarlayabilirsiniz.

Bu Google E-Tablolar ile Apps Komut Dosyası Temelleri codelab oynatma listesinde, Apps Komut Dosyası'nın temelleri ve Google E-Tablolar deneyiminizi iyileştirmek için nasıl kullanacağınız açıklanmaktadır. Bu codelab, Apps Komut Dosyası'nın temellerini öğretmeye odaklanmaktadır.

E-tablo hizmeti

Zaman ve emekten tasarruf etmek için Apps Komut Dosyası'nı kullanarak Google E-Tablolar'ın işlevlerini genişletebilirsiniz. Apps Komut Dosyası, komut dosyalarının Google E-Tablosu dosyalarınızla ve içerdiği verilerle etkileşim kurmasına olanak tanıyan E-Tablo hizmetini sağlar. Bu hizmeti kullanarak aşağıdaki yaygın e-tablo görevlerini otomatikleştirebilirsiniz:

  • E-tablo oluşturma veya değiştirme
  • Hücre verilerini, formülleri ve biçimlendirmeyi okuma ve güncelleme
  • Özel düğmeler ve menüler oluşturun.
  • Diğer Google uygulamalarından veya üçüncü taraf kaynaklarından veri içe ve dışa aktarma
  • E-tabloları paylaşın ve e-tablolara erişimi kontrol edin.

Neler öğreneceksiniz?

Bu oynatma listesinde, Google E-Tablolar ile Apps Komut Dosyası'nı kullanmaya başlamak için ihtiyacınız olan tüm konular ele alınmaktadır:

  1. Makrolar ve Özel İşlevler
  2. E-Tablolar, sayfalar ve aralıklar
  3. Verilerle çalışma
  4. Veri biçimlendirme
  5. Slaytlar'da verileri grafiklerle gösterme ve sunma

Bu oynatma listesindeki codelab'ler sırayla okunacak şekilde tasarlanmıştır. Bu nedenle, en iyi öğrenme deneyimi için bu codelab'den başlayıp sırayla tamamlayın.

Bu codelab'in içeriği hakkında daha fazla bilgi edinmek için sonraki bölüme geçin.

2. Giriş

Bu oynatma listesindeki ilk codelab'e hoş geldiniz. Bu codelab'de, Apps Komut Dosyası'nı Google E-Tablolar ile kullanmanın temel bilgilerini öğreneceksiniz. Bu codelab'de özellikle iki temel kavram olan makrolar ve özel işlevler üzerinde durulmaktadır.

Makro, Google E-Tablolar'da kaydedilen bir dizi işlemdir. Kaydettikten sonra, menü öğesi veya kısayol tuşuyla bu işlemleri daha sonra tekrarlamak için makroyu etkinleştirebilirsiniz. Hem Google E-Tablolar'da hem de Apps Komut Dosyası kod düzenleyicisinde kendi makrolarınızı oluşturabilir ve güncelleyebilirsiniz.

Apps Komut Dosyası kod düzenleyicide özel işlevler de oluşturabilirsiniz. E-Tablolar'ın sunduğu yerleşik işlevlere (ör. SUM veya AVERAGE) benzer şekilde, Apps Komut Dosyası'nı kullanarak basit ve niş işlemler (ör. dönüşümler veya dize birleştirme) için kendi özel işlevlerinizi yazabilirsiniz. Oluşturulduktan sonra bu işlevleri, yerleşik işlevleri kullandığınız gibi E-Tablolar'da çağırabilirsiniz. Özel işlevler, yazdığınız hücre formüllerinde de kullanılabilir ve gerektiğinde diğer işlevlerle birleştirilebilir.

Bu codelab'in hangi kavramları ve koşulları içerdiğini öğrenmek için aşağıyı okuyun.

Neler öğreneceksiniz?

  • Google E-Tablolar için komut dosyası oluşturma
  • Apps Komut Dosyası düzenleyicide gezinme
  • Makro oluşturma ve güncelleme
  • İlk E-Tablolar özel işlevinizi oluşturma

İhtiyacınız olanlar

Tanıtım bölümünü tamamladınız. Makrolarla çalışmaya başlamak için sonraki bölüme geçin.

3. E-Tablolar'da makro oluşturma

Genellikle e-tablolarda çalışırken hücre değerlerini kopyalama, biçimlendirme, formül oluşturma gibi tekrarlayan işlemler döngüsüne girebilirsiniz. Bu durum sıkıcı olabilir ve hatalara yol açabilir. Google E-Tablolar, tekrarlanan işlemleri otomatikleştirmenize yardımcı olmak için makrolar sunar. Makrolar, bir e-tablodaki bir dizi işlemi "kaydetmenize" olanak tanır. Kaydedilmiş bir makroyla, elektronik tablonun başka bir yerinde aynı işlemleri basit bir kısayol tuşuyla tekrarlayabilirsiniz.

Bu bölümde, E-Tablolar'da makro oluşturmayı öğreneceksiniz. Bir sonraki bölümde, Apps Komut Dosyası kullanılarak makroların nasıl oluşturulduğunu göreceksiniz.

Başlamadan önce

Devam etmeden önce bazı verilerin bulunduğu bir e-tabloya ihtiyacınız var. Sizin için bir tane hazırladık: Veri sayfasını kopyalamak için bu bağlantıyı, ardından Kopya oluştur'u tıklayın.

5b8aded1bb349ecf.png

Kullanabileceğiniz örnek e-tablonun bir kopyası Google Drive klasörünüze yerleştirilir ve "En Çok Hasılat Yapan İlk 10 Film (2018) Kopyası" olarak adlandırılır.

Makro oluşturma

Çalışacağınız bir e-tablonuz olduğuna göre artık Google E-Tablolar'da makro kaydedebilirsiniz. Bu örnekte, verileriniz için bir başlık satırını biçimlendiren bir makro oluşturacaksınız. Aşağıdaki adımları uygulamanız yeterlidir:

  1. İmleci satıra yerleştirmek için A1 hücresini tıklayın. Bu, başlık satırınızdır.
  2. Menüde Uzantılar > Makrolar > Makro Kaydet'i seçin.

Kaydı başlattığınızda Google E-Tablolar, e-tabloda yaptığınız her işlemi (ör. hücreleri vurgulama, veri ekleme, farklı sayfalara geçme, biçimlendirme) hatırlar. Bu işlemler, makroyu kaydedip daha sonra etkinleştirdiğinizde tekrarlanan "komut dosyası" haline gelir.

  1. Makro iletişim kutusunda Göreceli başvuru'yu seçin.

c59f2f12317352d2.gif

  1. 1. satırı seçin.

1d782ee30c66a02b.gif

  1. En üst satırın Dolgu Rengi'ni beyazdan koyu magenta 3'e değiştirin.

f7e7abaf76e338c7.png

  1. En üst satırın Metin Rengi'ni siyahtan beyaza değiştirin.

d5e630acbe83148.png

  1. Metni kalınlaştırmak için Ctrl+B (veya macOS'te Cmd+B) tuşlarına basın.
  2. En üstteki satırı dondurmak için Görünüm > Dondur > 1 satır'ı seçin.

97cb244ffebe8953.png

  1. Makro iletişim kutusunda Kaydet'i tıklayın. Yeni bir iletişim kutusunda makroyu adlandırmanız istenir. "Başlık" adını girip Kaydet'i tıklayın.

b4610a54340da518.gif

E-Tablolar'ın kullanıcı arayüzünü kullanarak üstbilgileri biçimlendirmeye özel bir makro oluşturdunuz.

4ed7fbed18ea3681.png

Makronuzu etkinleştirme

Aşağıdaki talimatları uygulayarak yeni makronuzu E-Tablolar'da kullanabilirsiniz:

  1. E-tablo oluşturmak için E-tablo ekle'yi 9c9b0c19bf317e7f.png tıklayın.

927c012b4e11475b.png

  1. Yeni sayfada A1:C2 aralığına biraz metin ekleyin. Aşağıdaki örnek girişleri kullanabilirsiniz:

c3aadaef52a609bf.png

  1. İlk satırı vurgulayın.

cfe36fcf833d0bd7.gif

  1. Makroyu seçili alana uygulamak için Uzantılar > Makrolar > Başlık'ı tıklayın.
  2. Ekrandaki talimatları uygulayarak makroyu yetkilendirin.
  1. Makroyu tekrar çalıştırmak için 4. adımı tekrarlayın (yetkilendirme, ilk yürütmeyi durdurur).

Tebrikler, E-Tablolar'da makro uygulamayı öğrendiniz. E-tablonuz şu şekilde görünmelidir:

7c7130a4a697bd92.png

Makrolar, e-tabloları verimli bir şekilde oluşturmanıza olanak tanır. Bu codelab'in bir sonraki bölümünde, makrolarınızı daha da güçlü hale getirmeyi öğreneceksiniz. İşin sırrı şudur: Makro kaydettiğinizde aslında Apps Komut Dosyası kodu yazarsınız. E-Tablolar, arka planda makro işlemlerine uygun kodu oluşturur. Sonraki bölümde, Apps Komut Dosyası'nın tarayıcı içi düzenleyicisini kullanarak kodu doğrudan nasıl değiştireceğinizi öğreneceksiniz.

4. Komut dosyası düzenleyicisindeki makrolar

Bir makro oluştururken Google E-Tablolar, işlemlerinizi Apps Komut Dosyası işlevi olarak kaydeder. Makroyu etkinleştirdiğinizde Google E-Tablolar, bu işlemleri aynı sırada uygulamak için Apps Komut Dosyası işlevini çağırır.

Komut dosyası düzenleyici

Makro oluşturduğunuza göre artık koduna bakabilirsiniz. Makro komut dosyasını görüntülemek için Uzantılar > Apps Komut Dosyası'nı tıklayarak Apps Komut Dosyası'nın tarayıcı kod düzenleyicisini açın.

Komut dosyası düzenleyici, Apps Komut Dosyası'nda kod yazmanıza ve bu komut dosyalarını Google sunucularında çalıştırmanıza olanak tanır.

macros.gs analizi

Mevcut senaryoyu inceleyin. E-Tablolar, Header makrosunu kaydettiğinizde macros.gs komut dosyası oluşturup Header adlı ilgili bir Apps Komut Dosyası işleviyle doldurdu. Header makrosunu etkinleştirdiğinizde E-Tablolar bu işlevi çalıştırır.

Apps Komut Dosyası'ndaki makro işlevinizin yapısını öğrenmek için aşağıdaki resme bakın. Adımları farklı bir sırada kaydettiyseniz veya kayıt sırasında e-tabloda farklı yerleri tıkladıysanız kodunuz bu koddan biraz farklı görünebilir.

5d653a69a0897adf.png

İlk satır, yetkilendirmeyi etkileyen bir açıklama yorumudur:

/** @OnlyCurrentDoc */

Çoğu komut dosyası çalıştırılmadan önce kullanıcıdan bazı izinler ister. Bu izinler, kullanıcının komut dosyasının yapmasına izin verdiği işlemleri kontrol eder. Bir komut dosyası projesinde @OnlyCurrentDoc yorumu varsa Apps Komut Dosyası yalnızca mevcut e-tabloya erişme ve e-tabloyu güncelleme izni ister. Bu yorum olmadan Apps Komut Dosyası, kullanıcının tüm e-tablolarına erişmek ve bunları güncellemek için izin ister. Tek bir dosyayla çalışırken bu ek açıklamayı eklemek her zaman en iyi uygulamadır. Makro kaydedici bu yorumu sizin için otomatik olarak ekler.

Apps Komut Dosyası'nın makronuzun talimatlarını nasıl temsil ettiğini anlamak için aşağıdaki işlevi inceleyebilirsiniz:

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, sheet.getMaxColumns()).activate();
  spreadsheet.getActiveRangeList().setBackground('#4c1130')
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
};

Bu kod, Header makrosunu etkinleştirdiğinizde çalışır. function sonrasında gelen Header() etiketi, işlevin adını ve parametrelerini tanımlar. Apps Komut Dosyası'ndaki makro işlevlerinin girişlere ihtiyacı olmadığından Header() için parametre gerekmediğini unutmayın. Küme parantezleri, Apps Komut Dosyası'nda her zaman bir işlevin gövdesini kapsar.

Bu oynatma listesindeki sonraki codelab'lerde makro oluşturmayla ilgili sınıflar ve kavramlar açıklanmaktadır. Şimdilik, bileşenleri ve makronuzu oluşturmadaki rolleri hakkında genel bir fikir edinmek için aşağıdaki kod açıklamalarını inceleyebilirsiniz. İlk satırı ele alalım:

var spreadsheet = SpreadsheetApp.getActive();

Burada getActive(), E-Tablolar'daki mevcut etkin e-tablo dosyasını temsil eden bir nesne döndürür ve bunu yeni değişken spreadsheet olarak ayarlar.

var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, sheet.getMaxColumns()).activate();

Bu satırlar, ilk satırı tıklayarak vurgulama işlemine karşılık gelir. Buna etkinleştirme denir. İlk satır, geçerli sayfayı sheet değişkeninde saklarken ikinci satır, getRange() yöntemini kullanarak ilk satırın tamamını alır ve ardından etkinleştirmek için activate() yöntemini çağırır. İlk satır, belirli satır ve sütun numaraları kullanılarak belirtilir. spreadsheet.getCurrentCell().getRow() işlevi geçerli satırın numarasını, sheet.getMaxColumns() işlevi ise sayfadaki maksimum sütun sayısını döndürür.

spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');

Bu kod parçası daha karmaşık hale gelir. spreadsheet ile yöntemleri verimli bir şekilde çağırmak için kod, bu spreadsheet yönteminin birden fazla kez gereksiz yere çağrılmasını önlemek amacıyla üç yöntemi getActiveRangeList() üzerine yığar. Apps Komut Dosyası'nı kullanarak daha fazla kod yazdıkça tek bir sınıfta birden fazla yöntemi çağırma (yöntem zincirleme olarak da bilinir) kuralına daha fazla alışacaksınız. Şimdilik kod bloğundaki her yöntemle ilgili kısa açıklamalar için aşağıdakileri okuyabilirsiniz:

Son olarak, son satır makronun ilk satırını dondurur:

spreadsheet.getActiveSheet().setFrozenRows(1);

Bu, makronuzu kaydederken oluşturduğunuz komut dosyasıdır. Yukarıda bahsedilen yabancı terimler veya yöntemler konusunda endişelenmeyin. Bu açıklama, Apps Komut Dosyası'nın tipik bir makro işlevinde odaklandığı bazı fikirler ve gelecekteki codelab'lerin ele alacağı konular hakkında düşünmenizi sağlamak için hazırlanmıştır.

Sonraki bölümde, makroları daha fazla kişiselleştirmek için komut dosyası düzenleyiciyi nasıl kullanabileceğinizi göstermek amacıyla Header() işlevinin kodunu değiştirme konusu ele alınmaktadır.

Apps Komut Dosyası ile makroları özelleştirme

Apps Komut Dosyası düzenleyicisinde, daha önce Google E-Tablolar'da oluşturduğunuz makro gösterilir. İşlev gövdesinin içeriğini ayarlayarak makronuzun talimatlarını farklı veya ek işlemler yapacak şekilde daha da özelleştirebilirsiniz. Aşağıdaki alıştırmalarda, komut dosyası düzenleyiciyle makroları kullanmanın çeşitli yolları gösterilmektedir.

Etkilenen hücreleri değiştirme

Makronuzu, satırın tamamı yerine yalnızca ilk satırın ilk 10 sütununu etkileyecek şekilde değiştirmek istediğinizi varsayalım. Makroyu silip yeniden kaydedebilirsiniz. Ancak Apps Komut Dosyası düzenleyiciyi kullanarak bu değişiklikleri doğrudan yapabilirsiniz. Bunu yapmanın bir yolu şudur:

  1. Komut dosyası düzenleyicide sheet.getMaxColumns() değerini 10 ile değiştirin. Bu düzenleme, makronun e-tabloda etkilediği hücre aralığını değiştirir.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
    /* sheet.getMaxColumns() replaced with 10.*/
  spreadsheet.getActiveRangeList().setBackground('#4c1130')
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. Senaryonuzu kaydetmek için Kaydet'i kaydet tıklayın.
  2. Projenizi yeniden adlandırmak için yeni proje adı olarak "Makrolar ve Özel İşlevler"i girin ve Yeniden adlandır'ı tıklayın.
  3. E-Tablolar'da sayfa oluşturmak için Sayfa ekle'yi 9c9b0c19bf317e7f.png tıklayın.

927c012b4e11475b.png

  1. Komut dosyası düzenleyicide, işlevler listesinden Header simgesini seçin ve Çalıştır'ı tıklayın.

Yeni sayfanızda aşağıdaki sonucu görmeniz gerekir:

8a58ba02535b2b9c.png

Etkin veya hedef aralığı değiştirerek makronuzun artık yalnızca ilk satırın bir bölümünü etkilemesini sağlayabilirsiniz. Birçok Apps Komut Dosyası yöntemi, hangi hücrelerde işlem yapılacağını belirtmek için parametre olarak bir aralık veya A1 gösterimi alır.

Şimdi de makro renklerinizi özelleştirme hakkında bilgi edinelim.

Makronuzun renklerini değiştirme

Apps Komut Dosyası, E-Tablolar'daki makroların veya diğer öğelerin renk şemasını tasarlamanıza yardımcı olmak için bir aralığın dolgu veya metin rengini değiştirebilir. Makronuzun renklerini nasıl özelleştirebileceğinizi öğrenmek için aşağıdaki talimatları uygulayın.

Bu talimatlar, makronuzun arka plan rengini değiştirmeye odaklanmaktadır:

  1. E-Tablolar'da, orijinal verileri içeren sayfaya (Sayfa1) geri dönün.
  2. İlk satırı tıklayarak vurgulayın.
  3. Komut dosyası düzenleyicide arka plan rengi #4c1130 yerine #afeeee yazın. Bu değerler, onaltılık üçlü gösterimi kullanılarak farklı renkleri ifade eder.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
  spreadsheet.getActiveRangeList().setBackground('#afeeee')
    /* #4c1130 replaced with #afeeee.*/
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. Senaryonuzu kaydetmek için Kaydet'i kaydet tıklayın.
  2. İşlevler listesinden Header simgesini seçip Çalıştır'ı tıklayın.

E-Tablolar'da, ilk satırdaki ilk 10 sütunun arka plan dolgusu özel bir turkuaz renge dönüşür:

bbd26f7c8e35039.png

setBackground(color) parametrelerindeki onaltılık renk gösterimini #4c1130 (koyu macenta 3) yerine #afeeee (soluk turkuaz, Sheets'in varsayılan renk menüsünde erişilemeyen bir seçenek) olarak değiştirerek makronuzun arka plan rengi özelliğini değiştirirsiniz.

Artık makronuz tarafından ayarlanan arka plan rengini değiştirdiniz. Metin rengini de değiştirmek istiyorsanız ikinci renk kodunu değiştirin.

  1. E-Tablolar'da, ilk satırın vurgulanmaya devam ettiğinden emin olmak için bu satırı tıklayın.
  2. Komut dosyası düzenleyicide yazı tipi rengi #ffffff değerini #191970 ile değiştirin. Bu, makronun yazı tipi rengini lacivert olarak ayarlamasına neden olur.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
  spreadsheet.getActiveRangeList().setBackground('#afeeee')
  .setFontColor('#191970')/* #ffffff replaced with #191970.*/
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. Senaryonuzu kaydetmek için Kaydet'i kaydet tıklayın.
  2. İşlevler listesinden Header simgesini seçip Çalıştır'ı tıklayın.

Başlık satırının metin renginin artık lacivert olduğunu görmek için E-Tablolar'a dönün.

2eaf2fb4879e1b36.png

Makroların, Apps Komut Dosyası kodu olarak kaydedilen E-Tablolar işlemleri olduğunu öğrendiniz. Bir sonraki bölümde, Apps Komut Dosyası'nın Google E-Tablolar ile çalışmanıza yardımcı olabileceği başka bir yolu (özel işlevler) inceleyebilirsiniz.

5. İlk komut dosyanızı kodlama: Özel işlevler

Çoğu e-tablo uygulamasında olduğu gibi Google E-Tablolar'da da e-tablo verileri üzerinde hızlı hesaplamalar yapmayı sağlayan =SUM() gibi çeşitli yerleşik formül işlevleri bulunur. Özel işlevler, Apps Komut Dosyası'nı kullanarak belirttiğiniz işlevlerdir. Tanımladığınız özel işlevleri, yerleşik işlevler gibi e-tablonuzun herhangi bir yerinde kullanabilirsiniz.

Bu bölümde, Apps Komut Dosyası'nda para birimi dönüştürme işlemi yapan özel bir işlevin nasıl oluşturulacağı açıklanmaktadır.

Komut dosyası oluşturma

Makrolar bölümündeki aynı e-tablo ve komut dosyası projesini kullanarak yeni bir komut dosyası oluşturmayı öğrenmek için aşağıdaki talimatları uygulayın (bu komut dosyasını ilk özel işlevinizi oluşturmak için kullanabilirsiniz):

  1. Apps Komut Dosyası oluşturmak için komut dosyası düzenleyiciye dönün.
  2. Dosyalar'ın yanında Dosya ekle dosya ekleme > Komut Dosyası'nı tıklayın.
  3. Yeni komut dosyasına ad verin customFunctions ve Enter tuşuna basın. (Apps Komut Dosyası, komut dosyası adına otomatik olarak .gs uzantısını ekler.)

Düzenleyicide customFunctions.gs adlı yeni bir sekme gösterilir.

Özel işlevler için özel bir komut dosyası oluşturduğunuza göre artık bu dosyayı kodla doldurabilirsiniz.

ABD dolarını İsviçre frangına dönüştürme

"2018'in En Çok Hasılat Yapan İlk 10 Filmi" ile ilgili verileri, yalnızca ABD doları cinsinden dünya çapındaki brüt değerleri değil, İsviçre frangı cinsinden değerleri de gösterecek şekilde değiştirmek istediğinizi varsayalım. Özel işlevlerle bu işlemi kolayca yapabilirsiniz. Aşağıdaki alıştırmada, dolar değerlerinizi matematiksel olarak frank değerlerine dönüştürmek için özel bir işlevin nasıl oluşturulacağı gösterilmektedir.

İlk özel işlevinizi yazmadan önce, işlevin uygun bir çıkış göstermesine olanak tanımak için veri kümenizi değiştirin. Bunu yapmak için:

  1. E-Tablolar'da H sütununu sağ tıklayın.
  2. Açılan menüde Sağa 1 sütun ekle'yi tıklayın.

Sağa 1 sütun ekle seçeneğinin gösterildiği menü

  1. I1 hücresindeki sütunu "Worldwide_Gross (Swiss francs)" (Dünya Çapında Toplam Hasılat (İsviçre frangı)) olarak etiketleyin.

Artık dönüşüm özel işlevinizin sonuçlarını depolayabileceğiniz bir sütununuz var. Ardından, ilk özel işlevinizi oluşturmak için komut dosyası düzenleyiciyi kullanabilirsiniz.

  1. customFunctions.gs içinde myFunction() kodunu aşağıdaki kodla değiştirin:
/**
 * Converts US dollars to Swiss francs.
 *
 * @param {number} dollars The total number of dollars.
 * @return {number} swissFrancs The converted total of Swiss francs.
 * @customfunction
 */
function USDTOCHF(dollars){
  var swissFrancs = dollars * .99; 
  return swissFrancs;
}

Bu kod, ABD dolarını İsviçre frangına dönüştürür. Aşağıdaki talimatları deneyin ve özel işlevleri e-tablolarda nasıl çalıştırabileceğinizi öğrenin.

  1. Senaryonuzu kaydetmek için Kaydet'i kaydet tıklayın.
  2. E-Tablolar'da I2 hücresini seçin.
  3. İşlev çubuğuna =USDTOCHF(H2) yazın.

Formülü sütundaki diğer hücrelere uygulamak için:

  1. İmlecinizi I2 hücresinin sağ alt köşesine getirin ve küçük mavi kutuyu seçin (imleciniz mavi kutuyu işaret ederken 9c9b0c19bf317e7f.png şekline dönüşmelidir).
  2. Mavi kutuyu aşağı sürükleyerek I3:I11 aralığını vurgulayın.

3cf46560d6cea0de.gif

I sütununda artık H sütunundaki ABD doları değerlerinin İsviçre frangı cinsinden dönüşümleri listeleniyor.

7fc06b3d7e3e2a9.png

Tebrikler, ilk özel işlevinizi oluşturdunuz. Bir sonraki bölümde USDTOCHF() simgesini oluşturan kod açıklanmaktadır.

USDTOCHF() analizi

İlk yorumlarda kodun amacı ayrıntılı olarak açıklanıyor:

/**
 * Converts US dollars to Swiss francs.
 *
 * @param {number} dollars The total number of dollars.
 * @return {number} swissFrancs The provided value in Swiss francs.
 * @customfunction
 */

Bu tür yorum blokları, programlamada işlevlerin ne yaptığını açıklamak için sıkça kullanılır.

Bu yorumda iki bölüm tanımlayabilirsiniz: işlev açıklaması (doları franga dönüştürmek için) ve işlevin parametrelerini ve dönüş türünü açıklayan ek açıklamalar.

Apps Komut Dosyası, kodunuzu belgelemenize ve kodunuz için otomatik tamamlama ipuçları oluşturmanıza yardımcı olmak üzere açıklamalarda JSDoc'u kullanır. USDTOCHF() içinde kullanılan her bir ek açıklamanın Apps Komut Dosyası geliştirme sürecinde size nasıl yardımcı olduğunu aşağıda okuyabilirsiniz:

  • @param: İşleve iletilen her parametreyi açıklamak için @param ek açıklamasını kullanabilirsiniz.
  • @return: İşlevin ne döndürdüğünü açıklamak için @return ek açıklamasını kullanabilirsiniz.
  • @customfunction: Özel işlevlerin doküman yorumlarına her zaman @customfunction eklemeniz gerekir. Bu ek açıklama, bir hücreye işlev adı girdiğinizde E-Tablolar'ın yerleşik işlevleri otomatik tamamladığı gibi E-Tablolar'ın özel işlevinizi otomatik tamamlamasını sağlar.

d8680ab6efae97ac.gif

Otomatik tamamlama pop-up'ında görünen metnin, yorum bloğuna yerleştirdiğiniz açıklama metniyle tam olarak eşleştiğini fark edin. Oluşturduğunuz açıklamaların iyi yazılmış ve eksiksiz olduğundan emin olarak özel işlevlerinizi daha kolay kullanılabilir hale getirebilirsiniz.

Ardından, USDTOCHF() işlevindeki koda odaklanın:

function USDTOCHF(dollars){
  var swissFrancs = dollars * .99; 
  return swissFrancs;
}

Daha önce belirtildiği gibi, USDTOCHF() sayısal değişkeni alır, sabit bir döviz kuruyla çarpar ve swissFrancs sayısal değişkeninde İsviçre frangına dönüştürülmüş bir değer döndürür. Giriş parametresi, özel işlev bir hücreye eklenirken belirtilen hücrede bulunan değerdir. Bu örnekte, giriş dolar tutarları H sütunundan alınmaktadır. Çıkış değeri swissFrancs, işlevin hücresine (bu örnekte I sütunu) yerleştirilir.

Özel işlevler, bir sonraki bölümde göreceğiniz gibi sayısal veya dize değerleriyle çalışabilir.

Dize öneki birleştirme

USDTOCHF() işlevinin sayısal çıktısının İsviçre frangı önekini CHF içermesini istediğinizi varsayalım. Aşağıdaki talimatlarda gösterildiği gibi birleştirme operatörünü (+), kullanarak Apps Komut Dosyası ile bunu yapabilirsiniz:

  1. Komut dosyası düzenleyicide, @return açıklamasını sayı yerine dize döndürecek şekilde güncelleyin.
  2. return swissFrancs olan önceki oranı return 'CHF' + swissFrancs olarak değiştirin.

+ operatörü, swissFrancs içinde bulunan değerin önüne CHF dizesini ekler. Kodunuz artık şu şekilde görünmelidir:

/**
 * Converts US dollars to Swiss francs.
 *
 * @param {number} dollars The total number of dollars.
 * @return {string} swissFrancs The provided value in Swiss francs.
 * @customfunction
 */
function USDTOCHF(dollars){
  var swissFrancs = dollars * .99;
  return 'CHF' + swissFrancs;
}
  1. Senaryonuzu kaydetmek için Kaydet'i kaydet tıklayın.

İsviçre frangı dizesi artık I sütununun değerlerinin önüne ekleniyor:

20e4bfb7f0a994ea.png

Özel işleviniz artık yalnızca ABD dolarını İsviçre frangına dönüştürmekle kalmıyor, aynı zamanda para birimini dize önekiyle birlikte çıkış olarak veriyor.

Gelişmiş: Harici verileri getirme

Bu, temel bir özel işlev için iyi bir başlangıçtır ancak bu örnekte, doların İsviçre frangı karşısındaki döviz kurunun sabit olduğu varsayılmaktadır. Bunun yerine geçerli döviz kurunu kullanmak istediğinizi varsayalım. Böylece, sayfa her yeniden yüklendiğinde değerler yeniden hesaplanarak geçerli dönüşümü temsil edecek. Bunu yapmak için mevcut döviz kurunun ne olduğunu öğrenmeniz gerekir. Bu bilgi Google E-Tablolar'da kolayca bulunmaz ancak Apps Komut Dosyası'nı kullanarak bu bilgiye ulaşabilirsiniz.

İsviçre frangının ABD doları karşısındaki mevcut dönüşüm oranını almak için aşağıdaki gibi bir kod kullanabilirsiniz:

function USDTOCHF(dollars){
  // Gets a cache that is common to all users of the script.
  var cache = CacheService.getScriptCache();

  // Accesses the memory location (rates.CHF) of the script cache.
  var rate = cache.get('rates.CHF');

  // If a cache miss occurs, the program fetches the current
  // CHF rate from an API and stores the rate in the cache
  // for later convenience.
  if (!rate) {
    var response =
UrlFetchApp.fetch('https://api.exchangeratesapi.io/latest?base=USD');
    var result = JSON.parse(response.getContentText());
    rate = result.rates.CHF;
    cache.put('rates.CHF', rate);
  }
  // Converts dollars to CHF according to the latest rate.
  var swissFrancs = dollars * rate;
  // Returns the CHF value.
  return 'CHF' + swissFrancs;
}

Bu kod, üçüncü taraf döviz kuru API'si kullanarak mevcut döviz kurunu bir finansal bilgi sunucusundan getirir. Bu işlem, UrlFetchApp ve CacheService gibi Apps Komut Dosyası hizmetleri kullanılarak yapılır. Bu gelişmiş kavramlar bu özel kod laboratuvarının kapsamı dışındadır ancak Google E-Tablolar'da karmaşık görevleri otomatikleştirmek için Apps Komut Dosyası'nın çok yönlülüğünü görmeye başlayabilirsiniz.

Özel işlev yönergeleri

Özel işlevlerle ilgili alıştırmaları tamamladığınız için tebrik ederiz. Projelerinizde özel işlevleri kullanırken belirli kısıtlamaları olduğunu anlamanız önemlidir. Aşağıdaki listede, Google E-Tablolar'daki Özel İşlevler rehberinde ayrıntılı olarak açıklanan sınırlamalar özetlenmiştir:

  • Kullanıcı yetkilendirmesi gerektiren özel işlevler oluşturmayın. Bunun yerine, örnek veri hesaplamaları ve metin düzenleme gibi daha basit görevleri yerine getirmek için özel işlevlerinizi oluşturun. Apps Komut Dosyası hizmetlerini kullanma başlıklı makaleye gidin.
  • Özel bir işlevi başka bir yerleşik işlevle aynı şekilde adlandırmayın veya adı alt çizgiyle bitirmeyin. Adlandırma kurallarını inceleyin.
  • Özel işlevlere değişken bağımsız değişkenler iletmeyin. Özel işlevlere yalnızca deterministik (sabit) değerleri bağımsız değişken olarak iletebilirsiniz. =RAND() sonucu gibi değişken bağımsız değişkenler iletmek özel işlevi bozar. Arguments yönergelerine bakın.
  • Tamamlanması 30 saniyeden uzun süren işlevler oluşturmayın. İşlev kodunu basit ve kapsamı sınırlı tutun. Aksi takdirde, işlem daha uzun sürerse hata oluşur. Özel işlevlerde yapılan hesaplamaları olabildiğince basit tutmak en iyisidir. Döndürülen değerlerle ilgili yönergeleri inceleyin.

Artık makrolarla çalışmak ve özel işlevler oluşturmak için komut dosyası düzenleyiciyi kullanarak e-tablolarınızı iyileştirebilirsiniz. Sonraki bölümde, öğrendiklerinizi ve komut dosyası yazma becerilerinizi geliştirmek için yapabileceklerinizi inceleyebilirsiniz.

6. Sonuç

Google E-Tablolar ile Apps Komut Dosyası'nın Temelleri adlı ilk codelab'i tamamlamış olmanız gerekir. E-Tablolar makroları ve özel işlevler oluşturup düzenleyerek temel Apps Komut Dosyası kavramlarını öğrendiniz. Apps Komut Dosyası bilginizi bir sonraki uygulamalı laboratuvarda daha da geliştirebilirsiniz.

Bu codelab'i faydalı buldunuz mu?

Evet Hayır

İşlediğimiz konular

  • Temel Apps Komut Dosyası kavramları
  • Komut dosyası düzenleyicide gezinme
  • E-Tablolar'da makro oluşturma ve güncelleme
  • Google E-Tablolar için özel işlevler oluşturma

Sırada ne var?

Bu oynatma listesindeki bir sonraki codelab'de, Apps Komut Dosyası E-tablo hizmetinin temel sınıfları ve terminolojisi açıklanmaktadır. Bu hizmet, Apps Komut Dosyası'nı kullanarak Google E-Tablolar'daki verilerin değerlerini ve sunumunu ayrıntılı bir şekilde kontrol etmenizi sağlar.

Bir sonraki codelab'i E-Tablolar, sayfalar ve aralıklar sayfasında bulabilirsiniz.