Google E-Tablolar için bir "isFormula" formülü arama


13

Belirli bir hücrenin düz (manuel olarak girilmiş) bir değeri mi yoksa bir formülü olup olmadığını anlatacak bir işlev var mı?

Yanıtlar:


5

Bu küçük snippet ile bunu yapabilirsiniz.

kod

function isFormula(startcol, startrow) {
  // prepare string
  var str = String.fromCharCode(64 + startcol) + startrow;

  // retrieve formula
  var fCell = SpreadsheetApp.getActiveSpreadsheet()
    .getRange(str).getFormula();

  // return false if empty else true 
  return fCell ? true : false;
}

kullanım

resim açıklamasını buraya girin

Gelen bu cevap Tom Horwood tırnak kullanımını engelleyecek şekilde bir yol buldu.

Misal

Komut dosyasını Araçlar> Komut Dosyası düzenleyicisi altına ekleyin ve kimlik doğrulamayı etkinleştirmek için hata düğmesine basın.

Sizin için bir örnek dosya oluşturdum: Formula for Check


Geziyordum ... İşin aslında bir hücrenin adresi olan bir dize alıyorum isFormula2("A1"). bu yüzden bunun gibi yeni bir versiyonunu yaratmaya çalıştım: function isFormula2(cell) { return (cell.getFormula())!=""; } ve bunu kullanarak çağrılabilir olmasını bekledim isFormula2(A1)ama bu işe yaramıyor gibi görünüyor ve hata ayıklamaya çalışırken celltanımsız olarak gösteriyor ... herhangi bir fikir neden bu ve işler olabilirse değişti böylece f(A1)yerine çalışacak f("A1")?
epeleg

@epeleg Düzeltilmiş cevabımı görün.
Jacob Jan Tuinstra

:) böylece adresi almak yerine şimdi bir sütun ve satır alır böylece değiştirdiniz. Hiçbir sözdizimi çağrı sadece olacağını böyle burada isFormula(a1)? (MS
Excel'de

@epeleg En yakın olanı isFormula_1 ("A2: A2") , örnek dosyama bakın. Özel işlevler bu şekilde çalışır. Tırnak işaretleri olmadan, değeri alırsınız. Tırnaklarla dize, bu şekilde kullanılabilir, ancak kopyalanamaz / yapıştırılamaz. COLUMN ve ROW çözümü sadece bir çalışmadır (kaçınılmaz olarak).
Jacob Jan Tuinstra

isFormula (a1: a1) ile çağırırsanız özel bir işlevin alacağı değer ne olur? Peki ya Formula (a1: b2)?
epeleg

9

Kısa cevap

Kullanım ISFORMULA () yerleşik işlevi.

Arkaplan ve Açıklama

Sanırım yeni Google E-Tablolar'da belgesiz bir formül keşfettim. @Pnuts, CELLformülün çalışmadığını söyledi (kısmen yalnızca yeni Google E-Tablolar'da mevcut olduğundan), bu nedenle kodu yeni bir Google E-Tablosuna kopyaladım. Bana (özel) formülümü iki değil, yalnızca bir argümanı kabul ettiğini söyleyen bir hata oluştu:
resim açıklamasını buraya girin

Bunun isFormulabaşka bir şeye yeniden adlandırılması, çalışan özel bir işlevle sonuçlandı. Bu durumda, başka bir Google E-Tablosu daha oluşturdum ve isFormulaformülü kullandım . Formül otomatik tamamlamada görünmüyor, ancak çalışıyor:
resim açıklamasını buraya girin

Dolayısıyla, formül yeni Google E-Tablolar'da kullanılabiliyorsa, bu en iyi yanıt olacaktır:

formül

=isFormula(A1)

Not

Yalnızca yeni Google E-Tablolar'da bulunur. Birkaç kişiden yeni formülü onaylamasını istedim ve onaylandı. Belgelenmediği için, uygulaması kesin değildir ve kaybolabilir. ARRAYFORMULABu yeni formülü ile kullanıldığında çalışmaz.

Misal

Sizin için bir örnek dosya oluşturdum: isFormula


Güzel. Google benim tavsiyemi kabul ediyor gibi görünüyor :) Ancak "Yeni Google E-Tablolar" a nasıl geçebilirim?
epeleg

ilginç. gmail hesabım için çalışıyor ancak google apps hesabımda
çalışmıyor

2
ISFORMULA () artık belgelenmiştir. Bkz. Support.google.com/docs/answer/6270316?hl=tr
Rubén

2

Görünüşe göre ISFORMULA()Google'dan gizli bir yerleşik işlev var . Kendi fonksiyonumu sildiğimi fark ettim ve hala çalışıyordum. Yeni bir e-tabloda denedim ve hala çalışıyor. Önbellek sorunu yok.

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.