Varolan Excel değerlerine belirli uzunlukta önde sıfırlar / 0'lar ekleme


299

Excel'de içe aktarılırken veya Excel'den dışa aktarılırken, önde gelen sıfırların soyulmasının nasıl önleneceğine dair birçok soru ve kalite yanıtı vardır. Ancak, aslında, dizeler olarak ele alındığında sayı olarak kesilmiş değerleri olan bir e-tablo var. Verileri temizlemem ve önde gelen sıfırları tekrar eklemem gerekiyor.

Baştaki sıfırların dizeyi dört karaktere doldurduğu dört karakterden oluşan bir alan vardır. Ancak:

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

Soru: Bu 0'ları dört karakterden oluşacak şekilde bu değerlere geri alan bir Excel formülü var mı?

Not: Bu, New England bölgesi posta kodlarının önde gelen sıfıra düştüğü ve bunları tekrar eklemeniz gereken eski Posta Kodu sorununa benzer.


Dönemin orada olması gerekiyor "3829."mu?
Josh Lee

Hayır, ama bu bir "." benim Strunk & White benim güvenilir kopyasına göre cümle karakter. Anlaşılır olması için kaldırıldı.
Mark A

7
Ben bir şey daha tam anlamıyla almak eğilimindedir bir kod bloğunda olması dışında kabul ediyorum. (Ayrıca, Excel her sayıyı bir kayan nokta olarak saklar, böylece ondalık bir yer olabilir.)
Josh Lee

4
@josh doğru yazım "bunun dışında kabul" için oy.
Michiel van der Blonk

Yanıtlar:


506
=TEXT(A1,"0000")

Bununla birlikte, METİN işlevi tarih oluşturma gibi başka süslü şeyler de yapabilir.


4
AMAN TANRIM! Mükemmel! Her gün yeni bir şey öğreniyorsun. Hatta birden fazla köpek kulaklı Excel kitabım var ve bununla hiç karşılaşmadım - gelecekte Excel tabanlı posta kodu verilerini yönettiğimde kullanacağım.
Mark A

1
Bu ondalık sayılarla iyi sonuç verir ... peki ya onaltılık? Baştaki 0'ların onunla çalışmasını sağlamanın bir yolunu bulamıyorum ...
Shadow

10
@shadow Excel için onaltılık sayı bir sayı değil, bir dizedir. Yani bir dize olarak ele: =RIGHT("0000" + A1, 4).
GSerg

8
@shadow, DEC2HEX bir yer argümanı alır. Bu yüzden =DEC2HEX(HEX2DEC(A1),4)onaltılık sayıları doldurmak için iyi çalışır.
Raz Wilson

9
@mcs Sözdizimini değiştirmediler. Excel sürümünüz, Windows dil ayarlarınızdan aldığı parametre ayırıcı olarak kullanılır; .
GSerg

78

Bunu yapmanın daha etkili (daha az rahatsız edici) yolu, özel biçimlendirme yöntemidir.

  1. Stil vermek istediğiniz sütunu / diziyi vurgulayın.
  2. ctrl+ 1Veya Biçim -> Hücreleri Biçimlendir'i tıklayın .
  3. Sayı sekmesinde Özel'i seçin.
  4. Özel biçimlendirmeyi 000 # olarak ayarlayın. (sıfır sıfır sıfır #)

Bunun aslında hücrenin değerini değiştirmediğini unutmayın. Yalnızca çalışma sayfasında baştaki sıfırları görüntüler.


8
Orijinal hücrenin önündeki sıfırları tutmaya gerek yoksa bu harika çalışır, ancak dizelerin başka bir yerde kullanılması gerekiyorsa çalışmaz. Hücrelerin 0004, 01032, 0284 olarak görüntülenmesini sağlar, ancak dizeleri ayrı bir hücrede birleştirmeye çalışırsanız, örneğin istenen 0004-01032-0284 yerine 4-1032-284 gösterecektir
Ashton Sheets

@AshtonSheets evet, cevapta belirttiğim gibi sadece önde gelen sıfırları görüntüler, gerçek değere hiçbir şey yapmaz. Bununla birlikte, =text()kolaylığı ve ilgili formül eksikliği nedeniyle bunu kullandığım durumlar oldu .
Musa

7
Referans için bu aslında 0000olmamalı 000#. Aksi takdirde 0 için çalışmaz.
PearsonArtPhoto

2
Yukarıda benim sorunum olanlar için, cevap 0 (sıfır) için # (karma) değiştirmek oldu. # Değeri olmadığında size karakter vermez, ancak değer olmadığında 0 size sıfır verir! Mantıklı ve harika çalışıyor: 0,0 $, "M"
Andrew

1
Ayrıca 000 # kullanarak benim için işe yaramadı ama ben sadece dört basamaklı bir sayı için 0000, beş için 00000, altı için 000000 gibi özel biçim belirlediğimde çalıştı. Açıkçası bu sadece daha kısa format numaraları için yararlı
Hilary

16

Ben bu DEC2HEX()özelliği ücretsiz sağlayan çok fark ettiğimde onaltılık değerleri doldurmaya çalışırken bu sayfaya çarptı .

Sadece ikinci bir parametre eklemeniz gerekir. Örneğin, => => ... ve benzerlerine 12dönüşmek için bağlama0C
DEC2HEX(12,2)0C
DEC2HEX(12,4)000C


9

Bunun Excel 2013'te yeni olup olmadığından emin değilim, ancak sütuna sağ tıklayıp "Özel" derseniz, Posta Kodu ve Posta Kodu + 4 için önceden tanımlanmış bir seçenek var. Magic.

resim açıklamasını buraya girin


6
Büyük öneri ve güncelleme. Herkesin bir e-tabloda SSN'leri depolamasını teşvik etmek için Microsoft'a -1 vermeniz gerekir.
Mark A

8

Bunun bir süre önce cevaplandığını biliyorum, ama burada basit bir çözümle şaşırttığımdan bahsetmedim.

=RIGHT("0000" & A1, 4)

Ne zaman yastığa ihtiyacım olursa yukarıdaki gibi bir şey kullanırım. Şahsen ben bunu en basit ve okunması daha kolay bir çözüm buluyorum.


1

Özel biçimlendirme kullanıyorsanız ve bu değerleri başka bir yerde birleştirmeniz gerekiyorsa, bunları kopyalayabilir ve Özel -> Değerleri sayfanın başka bir yerinde (veya farklı bir sayfada) yapıştırabilir ve ardından bu değerleri birleştirebilirsiniz.


1

Bu bile iyi çalışır

REPT(0,2-LEN(F2)&F2

burada 2 toplam basamak sayısıdır, 0 ~ 9 -> için 00 ila 09 gösterilir, hiçbir şey eklenmez.

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.