Bir Excel hücresinin formülü olup olmadığını veya sabit kodlanmış olup olmadığını nasıl anlarım?


17

Herhangi bir hücrenin kodlanmış bir değeri olup olmadığını veya türetilmiş bir formül olup olmadığını sistematik olarak söyleyecek özel bir ipucu (VBA olmayan özellikle tercih edilir) var mı?

İçine gömülü dağınık alt toplamları olan bazı verilerle ilgileniyorum ve ham satırları ayırabilir miyim görmeye çalışıyorum.


"Formülleri Göster" modu (Ctrl + `) yardımcı oluyor mu?
sblair

Öyle, ama ben "sistematik" olduğunu düşünmezdim - subtotal çizgileri elle patlatmamı gerektirir.
YGA

Yanıtlar:


8

Koşullu biçimlendirmeyi kullanın. "Hangi hücrelerin biçimlendirileceğini belirlemek için bir formül kullan" seçeneğini belirtin ve "= NOT (Cellhasformula)" yazın. Bu, sabit kodlanmış her şeyi biçimlendirir.


8
Yani tam cevap bu değildi ama aslında oldukça zarif. Tam cevap şu şekildedir : j-walk.com/ss/excel/usertips/tip045.htm Anahtar, "Cellhasformula" adı verilen ve " mistik formül = GET.CELL (48, DOLAYLI ("rc", YANLIŞ)). Bağlantıda belirtildiği gibi formül, XLM makro dilinde (VBA'nın öncülü) olan ve doğrudan bir çalışma sayfasında kullanılamayan GET.CELL kullanır. Hücrenin bir formülü varsa "48" argümanı GET.CELL değerini 'True' döndürür. DOLAYLI temelde seçilen aralıktaki her hücre için bir ref oluşturur.
YGA

Cevabı bu detayları içerecek şekilde düzenledim. Teşekkürler @YGA
Alain

15

Söz konusu hücreleri seçin, Ctrl+ tuşuna basın Gve ardından Specialaşağıdaki iletişim kutusunu almak için seçin :

Özel Git iletişim kutusu

Ardından, istediğiniz hücre türünü belirtin ve tıklatın; OKyalnızca bu hücre türleri seçili kalır.


8

Excel 2013 itibariyle şunları yapabilirsiniz:

=ISFORMULA(reference)

İşte tüm belgeler


3
=iferror(Formulatext(cell),"Not Formula")

veya yalnızca formülleri göstermek için:

=iferror(Formulatext(cell),"")

Excel yerine LibreOffice Calc kullanan herkes için formulatext () öğesini formula () ile değiştirin.
fixer1234

2

Diğer iki yöntem

  1. Mappit gibi bir eşleme aracı kullanın ! addin (güvenilir bir addin olarak çalıştırılabilir)
  2. Sabit kodlanmış hücrelerin, formüllerin, bağlı hücrelerin vb. Gerçek zamanlı renklendirilmesini sağlayan çok kullanışlı XLM / Aralık Adları geçici çözümünü kullanabilirsiniz . Bu, VBA'nın aksine dağıtmak için herhangi bir programlama bilgisi gerektirmez


1

Excel dosyasını makro içermeyen bir çalışma kitabı biçiminde depolamak istiyorsanız, hem VBA'dan hem de makrolardan (diğer yanıtlarda önerilen XL4 / XLM yaklaşımlarından) kaçınmalısınız. Bu cevapta, makro içermeyen bir Excel dosyası varsayımı yaptım.

MS-Excel 2013 kullanıyorsanız şunları kullanabilirsiniz:

=ISFORMULA(reference)

Daha eski MS-Excel sürümlerini (örneğin, 2010, 2007) kullanıyorsanız, bir hücrenin formül içerip içermediğini belirleyen gerçek bir işlev yoktur. Ancak, aşağıdakileri kullanarak tahmin edebilirsiniz:

=IF(OR(ISBLANK(reference);CELL("prefix";reference)<>"");FALSE;IF(CELL("type";reference)="l";TRUE;"MAYBE"))

Yukarıdaki işlev şunu döndürür:

  • Dize verisiyle sonuçlanan bir formül içeren hücreler için TRUE.
  • Dize değişmez değeri içeren hücreler için FALSE veya boş.
  • Bu değer değişmez ya da bir formülün sonucu olursa olsun, bir boolean, sayı veya tarih içeren hücreler için "MAYBE".

1

Orijinal tarihi geçtikten sonra, ancak herkes için kullanıldıysa, hücre aralığını seçip Değiştir (Ctrl + H) kullanarak, 'Bakın' "Formülleri" olarak ayarlayın ve eşittir =kesme işareti ile eşittir'=

$ C $ 1 içeriyorsa gibi bu da şeyleri dönüştürmek istiyorum açıkçası tüm formülleri çıkardı ama =if($A1=$B1,"Match","Different")hiç'=if($A1'=$B1,"Match","Different")

Dikkat A1'=B1sorunlu olabilir formül ortasında, ama hala olmayan pragmatik olsa formülleri görmek için olsun demektir. Değiştirmek için SUBSTITUTE işlevini kullanabilir, böylece $ D $ 1 içerir =SUBSTITUTE(C1,"'=","="), sonra sadece Not Defteri'ne kopyalayıp $ E $ 1'e yapıştırın

Diğer yol, 'formülleri göster' olacaktır, ancak bu, yalnızca seçilen bir aralığı değil, her hücre için formülleri gösterecektir.


1
Function is_formula(c As Range) As Boolean
  is_formula = Left(c.Formula, 1) = "="
End Function

Burada neler olduğunu anlatmak için kısa bir açıklama ekleyebilir misiniz? :)
bertieb

Sadece bir VBA modülüne yapıştırın, ancak OP'nin VBA'yı istemediğini fark ettim. Her neyse, bu yüzden kullanıyorum.
George Skelton

Bu gerçekten bir açıklama değil
bertieb
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.