Додайте провідні нулі / 0 до існуючих значень Excel до певної довжини


299

Є багато запитань та якісних відповідей на ПУ щодо того, як запобігти позбавленню нульових нулів під час імпорту або експорту з Excel. Однак у мене вже є електронна таблиця, в якій є значення, які були усічені як числа, коли насправді вони повинні були оброблятися як рядки. Мені потрібно очистити дані та додати провідні нулі.

Існує поле, яке повинно містити чотири символи, при цьому нульові нульові лінійки додають рядок до чотирьох символів. Однак:

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

Питання: Чи існує формула Excel, щоб нанести назад 0 на ці значення, щоб вони були усіма чотирма символами?

Примітка. Це схоже на вікову проблему з поштовим індексом, коли поштові індекси Нової Англії знижують свій провідний нуль, і вам доведеться додавати їх знову.


Передбачуваний період має бути там "3829."?
Джош Лі

Ні, але це правильна позиція для "". персонаж у реченні відповідно до моєї вірної копії Strunk & White. Видалили його для наочності.
Позначте

7
Я б прийняв це, за винятком того, що це було в блоці коду, в якому я схильний сприймати речі більш буквально. (Крім того, Excel зберігає кожне число як плаваючий, так що це міг бути десятковий знак.)
Джош Лі

4
@josh upvote за правильне написання "прийняти, крім цього".
Міхель ван дер Блок

Відповіді:


506
=TEXT(A1,"0000")

Однак функція TEXT здатна також виконувати інші модні речі, такі як форматування дати.


4
О БОЖЕ МІЙ! Ідеально! Ви щодня дізнаєтесь щось нове. У мене навіть є кілька книг Excel, що вухають собаку, і я ніколи не стикався з цим - буду використовувати будь-коли, коли я керував даними поштового індексу на основі Excel.
Позначте

1
Це добре працює з десятковими числами ... а як же шістнадцятковий? Я не можу знайти спосіб зробити так, щоб ведучі 0 працювали з ним ...
Тінь

10
@shadow Шістнадцяткове число для Excel - це рядок, а не число. Так обробляти його як рядок: =RIGHT("0000" + A1, 4).
GSerg

8
@shadow, DEC2HEX займає аргумент місця. Так =DEC2HEX(HEX2DEC(A1),4)добре працює для прокладки шістнадцяткових чисел.
Raz Wilson

9
@mcs Синтаксис вони не змінили. Ваша версія Excel використовується; як роздільник параметрів, який він бере з налаштувань мови Windows.
GSerg

78

Більш ефективний (менш нав'язливий) спосіб зробити це через спеціальне форматування.

  1. Виділіть стовпець / масив, який ви хочете стилізувати.
  2. Клацніть ctrl+ 1або Формат -> Форматувати комірки.
  3. На вкладці Число виберіть Спеціальний.
  4. Встановіть для власного форматування значення 000 #. (нуль нуль нуль #)

Зауважте, що це насправді не змінює значення комірки. Він відображає лише провідні нулі на робочому аркуші.


8
Це чудово працює, якщо немає необхідності утримувати провідні нулі повз початкової комірки, але не буде працювати, якщо рядки потрібно використовувати деінде. Це зробило б комірки відображатися як 0004, 01032, 0284, але якщо ви спробуєте об'єднати рядки в окрему клітинку, вона відобразила б, наприклад, 4-1032-284 замість потрібного 0004-01032-0284
Ashton Sheets

@AshtonSheets так, як я зазначив у відповіді, він відображає лише провідні нулі, він не робить нічого фактичного значення. Однак були випадки, коли я використовував це замість того, =text()що було зручно та бракує формули.
Мойсей

7
Для довідки, це насправді має бути 0000, а не 000#. Інакше це не працює за 0.
PearsonArtPhoto

2
Для тих, хто з моєю проблемою вище, відповідь було замінити # (хеш) на 0 (нуль). # Не дає символу, коли немає значення, але 0 дає вам нуль, коли немає значення! Має сенс і працює чудово: $ 0,0 ,, ,, М ”
Ендрю

1
Також не працював для мене, використовуючи 000 #, але працював, коли я просто вказав спеціальний формат як 0000 для чотиризначного числа, 00000 для п'яти, 000000 для шести тощо. Очевидно, це корисно лише для коротших цифр формату
Хіларі

16

Я потрапив на цю сторінку, намагаючись зафіксувати шістнадцяткові значення, коли зрозумів, що DEC2HEX()ця функція надається безкоштовно .

Вам просто потрібно додати другий параметр. Наприклад, пов'язуючи перетворюватися 12на 0C
DEC2HEX(12,2)=>0C
DEC2HEX(12,4) => 000C
... і так далі


9

Я не впевнений, чи це нове в Excel 2013, але якщо ви клацніть правою кнопкою миші на стовпчику і скажіть "Special", насправді є попередньо визначений варіант для ZIP Code та ZIP Code + 4. Magic.

введіть тут опис зображення


6
Чудова пропозиція та оновлення. Потрібно надати Microsoft -1 для заохочення будь-кого зберігати SSN в електронній таблиці.
Марк А

8

Я знаю, що на це відповіли деякий час тому, але просто кураж з простим рішенням тут, що я здивований, не згадувався.

=RIGHT("0000" & A1, 4)

Кожен раз, коли мені потрібно прокласти тампон, я використовую щось подібне до вище. Особисто я вважаю найпростішим рішенням і легшим для читання.


1

Якщо ви користуєтеся власним форматуванням і вам потрібно об'єднати ці значення в іншому місці, ви можете скопіювати їх і вставити спеціальні -> Значення в інше місце на аркуші (або на іншому аркуші), а потім об'єднати ці значення.


1

Навіть це прекрасно спрацює

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

де 2 - загальна кількість цифр, для 0 ~ 9 -> вона відображатиме від 00 до 09 відпочинку, нічого не буде додано.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.