Excel'de isteğe bağlı ondalık basamaklarla sayı biçimlendirme


76

Excel'de hücrelerde sayı var. Sayıların biçimlendirilmesini istiyorum; ondalık basamakları varsa, en çok iki tanesini gösterirler ve ondalık basamakları yoksa, hiçbiri göstermezler.

Örneğin.

  • 15, 15 olarak değil , 15 olarak biçimlendirilmelidir.
  • 14.3453453, 14.35 olarak biçimlendirilmelidir.
  • 12.1, 12.1 olarak biçimlendirilmelidir.
  • 0, 0 olarak biçimlendirilmelidir

Karşılaştığım en yakın özel format kodu 0.##. Ne yazık ki bu 15.00, 15 olarak biçimlendirir .

Sorunu daha da karmaşıklaştırmak için, elektronik tablo, SQL Server Raporlama Hizmetlerinden yapılan bir dışa aktarmanın sonucudur. Yani hiçbir makro mümkün değil. Öyle görünüyor ki 0.##, benim en iyi bahisim bu ve ekstra süre ile yaşayabilirler.

Yanıtlar:


29

Alternatif olarak, "isteğe bağlı" ondalık nokta sorununu aşağıdaki çözümü kullanarak çözebilirsiniz:

Sayı Biçimi: General;[Red](General)

Bu, negatif sayıları daha okunaklı bir şekilde biçimlendirirken, buna göre ondalık basamak ve kesirli değeri de ekleyecektir.

Posterin asıl sorusuna gelince, hala bir formül kullanarak "ekstra" ondalık noktaları yuvarlamanız / kısaltmanız gerekir. Ancak, bu basit bir formüldür ve =ROUND(<value>,<desired decimal places>)oldukça hesaplamalı olarak pahalı değildir.

Örnekler:

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)

3
Bu cevap daha fazla yükseltmeyi hak ediyor. Koşullu biçimlendirme kullanmadan ondalık noktasını doğru bir şekilde işledi. Özel durumumda, tüm ondalık basamakları göstermek istiyorum, bu yüzden formülü değiştirmem bile gerekmiyor.
wilson

1
Generalnumarası çok sayıda ondalık sayılar varsa örneğin bilimsel gösterim girmeden sorununu sahiptir 2.6532E-06yerine 0.0000026532.
Dan Dascalescu

+1 Bu, Pivot Tablonun etiketlerinde (koşullu biçimlendirmenin olmadığı durumlarda, binlerce dolar değerinde (örneğin 40.000 dolar ve 40.000 dolar ve 10.500 dolar ve 10.500 dolar gibi) göstermesi gereken belirli bir sorunu çözmemde yardımcı oldu. seçenek). Biçimlendirme kodu $General\kmükemmel yaptı!
Dan Henderson,

17

Ondalık olmayan sayılar için Koşullu Biçimlendirme uygulayın.

Örneğin, A1 hedef hücredir.

  1. A1'i "###, ###. 00" olarak biçimlendirin. Bu ondalık sayı için kullanılacak.
  2. Ondalık olmayan sayılar için Koşullu Biçimlendirme tanımlayın.

    • Koşul: Hücre Değeri = TRUNC (A1) 'e eşittir.
    • Biçim: ###,###

Sonuç aşağıdadır:

12       =>  12
14.231   => 14.23
15.00000 => 15
17.3     => 17.30

Ekranda 4.00'e yuvarlanan 4.001 sayısıyla ilgili bir sorun vardı, ancak koşullu biçimlendirme formülünü (4.001 <> 4) karşılamamış ve hala "4" olarak göstermişti. Bu koşullu formülü çözmek için kullandım: = YUVARLAK ($ A1; 2) = TRUNC ($ A1)
leokhorn 19:18

14

Excel özel biçimleri kısmi bir cevap sağlayabilir

Excel'deki sayılar için özel biçimler bu biçimde girilir:

  • pozitif sayı biçimi, negatif sayı biçimi, sıfır biçim, metin biçimi

Gereksiniminize yaklaşan, ancak ondalık olmayan sayılar için ondalık basamağa bırakan bir biçim:

  • , ## ??;. (# ## ??.); 0

Örnek:

  • 15, 15 olarak görüntülenir.
  • 14.3453453, 14.35 olarak görüntülenir.
  • 12.1, 12.1 olarak görüntülenir.
  • 0, 0 olarak görüntülenir.

Bu, şu ana kadarki en iyi cevap.
KyloRen

4
Oysa aslında geçerli bir çözüm, hatta etrafta olası bir çalışma sağlamıyor. Özel sayı biçimleriyle ilgili faydalı bilgilere sahiptir.
Lopsided

15, 15 olarak gösterilir.
Roger Far,

6

Son zamanlarda Excel 2007’de bununla karşılaştım ve değer hücrelerinde 'TRUNC' işlevini kullandım:

  value  =TRUNC(B5,1)
      0      0
      5      5
    5.4    5.4
  65.43   65.4
765.432  765.4

Tam istediğim gibi çalıştım ...


3
Evet, hem TRUNC (x, 2) hem de ROUND (x, 2) işi yapacak (ne tür bir yuvarlama yöntemine bağlı olduğunuza bağlı olarak). Daha sonra hücre biçimlendirmesini "Genel" olarak ayarlamanız yeterlidir ve ondalık basamaklar yalnızca gerekirse görüntülenir. (Droj'un görevini cevap olarak işaretlemek için oy veririm.)
Simon East

5

Koşullu biçimlendirme kullanan bir yöntem.

  1. Hücrenizi sağ tıklayın, "Hücreyi Formatla" yı seçin
  2. "Özel" i seçin
  3. "0. ####" girin (maksimum ondalık basamak sayısını kontrol etmek için daha fazla veya daha az # ekleyin)
  4. Tamam'ı tıklayın
  5. Hücre hala seçiliyken, "Koşullu Biçimlendirme" yi kullanın (Excel sürümünüze bağlı olarak, Biçimde bir menü öğesi veya Ana Sayfa'da bir düğme olabilir)
  6. "= MOD (H32,1) = 0" formülüne göre yeni bir kural ekleyin.

    düzenleme - daha iyi formül "= MOD (YUVARLAK (H32,2), 1) = 0", '2' istenen ondalık basamak sayısıdır). önceki formül, sayı bir tamsayıya yuvarlanırsa izleyen ondalık basamağı bırakın.

    Formülündeki H32'yi hücrenizin kimliği ile değiştirin, fakat HİÇBİR HEDEF OLMADIĞINDAN EMİN OLUN! ($ İşareti yok, formatı diğer hücrelere kopyalamanızı sağlar)

  7. Bu kuralın formatı için numara sekmesini ve "Özel" i seçin.

  8. Bu sefer, "0" formülünü girin
  9. Sayfaya geri dönmek için yeterince kez tıklayın (excel sürümleri arasında değişir)

İşte, sorumlu zevk tadını çıkarın! Formatı diğer hücrelere kopyalamak istiyorsanız, hücreyi kopyalayabileceğinizi ve "Özel Yapıştır" ı "Format" seçeneğiyle kullanabileceğinizi unutmayın.


Bunun yalnızca Excel'in belirli (veya daha yeni sürümleri) için geçerli olup olmadığını açıklayabilir misiniz? Hala 2003 kullanıyorum (ve utanç verici başkalarının da olduğundan şüpheliyim) ve Koşullu biçimlendirmeye gittiğimde, sayı biçimlendirmesini değiştirme seçeneğim yok, yalnızca Yazı Tipi, Kenarlık ve Desenler'i değiştirebilirim. Thanks
SSilk

Excel 2010'da bu yaklaşımı denedim ve iyi çalıştı. Excel'in önceki sürümleriyle çalışmaz (en azından Excel 2010'daki "uyumluluk modum" denetleyicisinin bana söylediği şey bu).
barfuin

2

Raporlama Servisleri'nde sayı formatı için de bir ifade yazabileceğinizi unutmayın. Benim durumumda kullandım

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

sayı biçimi ifadesi olarak. Bu, değerin bir tamsayı olup olmadığına göre seçilen iki hücre formatına sahip bir Excel dosyası oluşturdu.


1

Siz / kullanıcılarınız değerleri doğrudan hücrelere mi giriyorsunuz, yoksa bir formül veya makro tarafından mı dolduruluyor?

Hücreler bir insan tarafından doğrudan görünmemesinin iseniz, olabilir böyle bir formülle kullanıcıya biçimlendirilmiş metni görüntülemek sonra gizli bir aralıkta hesaplanan değerleri depolamak ve:

=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#"))

(burada 'A1' başvurulan hücredir)

Formül bu gibi değerleri gösterecektir:

 -------------------------
 |Original     |Formatted|
 |-------------+---------|
 |         15  |       15|
 | 14.3453453  |    14.35|
 |       12.1  |     12.1|
 |          0  |        0|
 |    -15.123  |   -15.12|
 |      1.004  |        1|
 -------------------------

Not: Formül çıktısı sayısal değil, bir metin dizesidir:

  • Çıktı varsayılan olarak sola hizalı olarak ayarlanmıştır.
  • Çıkışı başka hesaplamalarda kullanamazsınız (bunun yerine başvurulan orijinal hücreyi kullanmalısınız)

1

Hücreyi 'Genel' olarak biçimlendirin, ardından veri doğrulama altında değerleri ondalık değerlerle sınırlayın


E-tablonuza formül (ve muhtemelen yeni bir sütun) eklemekten kaçınmanız gerekirse, Fred'in önerisi en iyisi olabilir.
Simon Doğu

1
Bu, insanların ondalık basamakların görsel sınırından daha fazla sayı girmesine izin vermez.
Şubat'ta barfuin

1

Bu o kadar karmaşık olmak zorunda değil - sadece Koşullu Biçimlendirme ile yapılabilir. Excel 2010'um var, bu yüzden önceki sürümlerde çalışmayabilir.

  1. Genel olarak hücreleri biçimlendirin. Bazı numaralar için ondalık basamak sayısı çok yüksek olabilir.
  2. Bir hücreyi vurgulayın ve Koşullu Biçimlendirme'ye tıklayın. Yeni Kural, ardından "Formül Kullan" ı tıklayın.
  3. = (B1-INT (B1))> 0 formülünü kullanın (burada B1 biçimlendirdiğiniz hücredir)
  4. Biçim düğmesini tıklayın ve Özel'i seçin. Tür alanına [= 0] 0;. ## girin.
  5. Birkaç kez Enter tuşuna basın.
  6. Koşullu Biçimlendirme'ye tekrar tıklayın, Kuralları Yönet'e tıklayın ve az önce oluşturduğunuz kuralı düzenleyin. Kapsamını istediğiniz aralığı kapsayacak şekilde "Aşağıdakilere Uygulanır" alanındaki aralığı değiştirin.

Hepsi tamam.


1

Cevabım ondalık noktasını kaldırır VE 0 değerini kaldırır

koşullu biçimlendirme yazısında:

General;#;;@

Bu hile yapmalı.


Bu, sıfırları boş hücreler olarak görüntüler.
lolmaus - Andrey Mikhaylov

0

Luke'un yukarıda verilen büyük cevabına ek olarak, çalışmalarına dayanan bir değişiklik var. Değeri yoksa hücrede sıfır olmasını istemedim. Hücre biçiminizi genel olarak bırakın ve bu formülü kullanın:

=IF((A1=""), "",IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#")))

Yine A1'in referans aldığı hücre.


0

RoundÖnemli rakamlar sağlamak için fonksiyonu kullanma . Ancak, görüntülenen ondalık basamak sayısını değiştirmez. Sadece hücreyi generalsayı biçiminde biçimlendirin.

ROUND(MyValue,Sig.figs - 1 - INT(LOG10(ABS(MyValue)))

Neden tüm karmaşık INT (LOG ... formülü? Neden sadece YUVARLAK (değer, 2) ve Genel olarak formatlamayın?
Simon East

0
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

Artık yetim ondalık basamağı yok.


0

Bu, kesirli sayılar olduğunda bir Ondalık göstermenin en basit yolu ve tüm sayılar için Ondalık Gösterilmez olarak görünmektedir:

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

veya hücre referansları ile:

=TEXT(ROUND(A1,2),"general")

verir

15 = 15
9.23432234 = 9.23


SuperUser @lookingforsame sitesine hoş geldiniz. Sadece soruların gizli detaylarına dikkat etmeniz gereken bir not. Bu durumda, op, çıkışın SQL'den geldiğini söylüyor, eğer makro mümkünse, formüller de olmayabilir. Bazen bir soruyu cevaplamadan önce yorum olarak koymaya değer. Yine de yeni bir insan görmek güzel, mutlu cevaplamak!
Julian Knight
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.