Google E-Tablolar'da, toplam sayıyı bilmeyen mevcut tüm sayfalar arasında nasıl geçiş yapabilirsiniz?


10

Kızımın beyzbol takımı için istatistikler tutuyorum. Her oyun için birer yaprağım var, her biri aynı yapıda. Diğer sayfalardaki sayıları toplayan bir özet sayfası oluşturmak istiyorum. N sayfa sayısına referans vermek için formülleri nasıl oluşturmalıyım?

Misal:

=G1!C2+G2!C2+G3!C2

Yeni bir sayfa eklendiğinde geri dönmek ve her formülü değiştirmek istemiyorum.

Güncelleme: Google Yardım'da biraz daha arama yaparak bunun desteklendiğini düşünmüyorum. Yaptığım şey bir 3D aralığı olarak adlandırılıyor ve Excel'de desteklenmesine rağmen Google E-Tabloda desteklenmiyor.


Yanıtlar:


18

Bir makro kullanmanın bir sakıncası yoksa, aşağıdakileri yapabilirsiniz. Bu komut dosyasını e-tablonuza ekleyin (Araçlar -> Komut Dosyaları -> Komut Dosyası düzenleyicisi):

function getTotalSum(cell) {
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
    var sum = 0;
    for (var i = 0; i < sheets.length ; i++ ) {
        var sheet = sheets[i];
        var val = sheet.getRange(cell).getValue();

        if (typeof(val) == 'number') {
            sum += val;   
        }       
    }

    return sum;
}

ve formülü kullanın = getTotalSum ("A1") ; burada "A1" tüm sayfalarda toplamak istediğiniz hücredir (formülü yerleştirdiğiniz formül hariç).

Bir test komut dosyası hazırladım: https://spreadsheets.google.com/ccc?key=0Ao3E95ou1MgbdG45blRvWlVaYkxFY01PQUhvZkZQcEE&hl=tr&authkey=CPyZqxk


Bu tam olarak aradığım şey, ancak komut dosyası her çalıştığında şu anda hücrede bulunan değere ekler, bu yüzden her çalıştığında hücredeki sayfaların toplamından daha fazla alıyorum. Mevcut değeri silmesini / değiştirmesini ve diğer sayfaların toplamını eklemesini nasıl sağlayabilirim?
Keith

Özeti yapmak için aynı hücre konumunu mu kullanıyorsunuz? Eğer öyleyse, muhtemelen toplamı ekliyor. Ve sonra tekrar çalıştırdığınızda, eski toplam, vb. Yeni toplamı ekler. Sadece başka bir hücreye koyarsanız, çalışması gerekir. Bunu yapmamayı tercih ederseniz, geçerli sayfanın kimliğini almak için komut dosyasını değiştirmeniz ve ardından if ifadesine bunu içermemesi için bir onay eklemeniz gerekir. Önce döngü için yukarı ekleyin: var thissheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();Sonra ikinci if ifadesini şu şekilde değiştirin:if (typeof(val) == 'number') && (i != thissheet)
goodship11

Hata! İf ifadesinde yanlış sözdizimi. Bunu kullanın:if (typeof(val) == 'number' && i != thissheet)
goodship11

1
Diğer hücrelerin değerleri değişirse, döndürülen değer güncellenmez çünkü özel bir işlev yalnızca parametreleri değiştiğinde çalışır.
Rubén

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.