dlaczego kolumna Excel sformatowana jako liczba traci wiodące zero, gdy kolumna jest sformatowana jako tekst?

8

Muszę wyeksportować arkusz kalkulacyjny do CSV. Jedna z kolumn to kod pocztowy z kodami pocztowymi wschodniego wybrzeża, które mają wiodące zero. Kiedy ponownie sformatuję tę kolumnę jako Tekst, mając nadzieję na zachowanie początkowego zera podczas eksportu, natychmiast kolumna przechodzi od wyrównania do prawej do wyrównania do lewej i zero wiodące odchodzi! Spodziewałbym się wręcz przeciwnie, że może on stracić zero, jeśli zostanie sformatowany z tekstu na liczbę.

Jak zachować to wiodące zero?

mrblint
źródło

Odpowiedzi:

6

Teoria

Excel ma dwa różne, niepowiązane ze sobą pojęcia, jeśli chodzi o dane w komórkach: wartość surowa / przechowywana i wartość wyświetlana .

„Surowa” lub przechowywana wartość to rzeczywiste dane w niesformatowanej reprezentacji. Typ danych surowych może być liczba, tekst, data, itd.

Wartość „display” określa sposób formatowania danych. Podczas korzystania z graficznego interfejsu użytkownika programu Excel wyświetlana jest wartość wyświetlana, a nie wartość pierwotna.

Problem polega na tym, że kiedy eksportujesz do CSV, bierze on surową wartość i eksportujesz ją, a nie wartość wyświetlaną! Tak więc nawet jeśli sformatujesz dane tak, aby zawierały zera wiodące za pomocą okna dialogowego Formatuj komórki, jeśli wartość bazowa nie zawiera zera wiodącego, eksport też nie będzie.

Musisz sformatować wszystkie dane jako tekst (w arkuszu kalkulacyjnym Excel), a następnie w razie potrzeby dodać wiodące zero. To wyeliminuje wartość wyświetlaną, która oszukuje cię do myślenia, że ​​masz wiodące zero w wartości surowej (nie masz).

Rozwiązanie

Zero nie istnieje jako część zawartości komórki, tylko formatowanie, więc kiedy sformatujesz jako tekst, nie dostaniesz go. Możesz spróbować użyć formuły w następnej kolumnie, np. Jeśli masz 5-cyfrowy (?) Kod pocztowy z wpisami w A2, wpisz tę formułę w B2

=TEXT(A2,"00000")

skopiuj formułę w dół kolumny

Wynikiem tego jest wartość tekstowa (prawdopodobnie z faktycznym zerowym wyprzedzeniem). Gdy już znajdziesz tę wartość w innej kolumnie, możesz skopiować i wykonać „Wklej wartości” nad oryginalną kolumną, aby zastąpić wszystkie dane bazowe danymi zerowanymi. Następnie usuń dodatkową kolumnę.

Barry Houdini
źródło
Cześć Barry, doskonała odpowiedź, dodałem trochę „teorii” w tle, zamiast publikować kolejną odpowiedź ... nie krępuj się edytować zgodnie z życzeniem, to jest wspólna odpowiedź :-)
allquixotic
@allquixotic, nie ma problemu, ładne dodatki
Barry Houdini
2

W komórkach masz liczby, a nie tekst. Wartość liczbowa 02010 jest taka sama jak liczba 2010. Sformatowanie tego jako tekstu daje normalną reprezentację tekstu z 2010 roku, a nie 02010.

Aby zachować początkowe zera, wprowadź dane jako ciąg, a nie liczbę. Na przykład wpisz = „02010” jako wartość.

Aby po prostu wyświetlić zera wiodące, zakładając, że wszystkie liczby mają tę samą długość (powiedzmy, pięć cyfr), użyj formatu niestandardowego. Wybierz 0 z niestandardowej listy FOrlist, a następnie zmień na 00000. Wszystkie liczby będą wyświetlane jako pięć cyfr z zerami wiodącymi. Jeśli jednak zapiszesz te dane w pliku CSV, zer wiodących nie będzie tam. Jedynym sposobem na ich zachowanie jest wprowadzenie danych jako ciągów.

Charles Engelke
źródło
Otrzymujemy te dane od różnych stron trzecich. Wygląda na to, że nie mamy szczęścia, ponieważ jesteśmy na łasce ludzi wprowadzających dane i nie możemy zmusić ich do robienia tego w inteligentny sposób. Byłem zaskoczony, że przekonwertowanie go na tekst usunęło zero. To IMO jest efektem ubocznym, a nie tylko ciągiem reprezentującym wyświetlaną wartość, podczas gdy oczekiwałbym, że komórka sformatowana jako liczba usunie wiodące zero.
mrblint,
0

Minęło dużo czasu, odkąd użyłem Excela, ale zawsze użyłem przedrostka zera na początku „i Excel traktowałby go jako ciąg zamiast próbować interpretować go jako liczbę.

Sander Steffann
źródło