Excel: Как добавить ведущий ноль в строку чисел, разделенных запятой, если число меньше 8 цифр? - PullRequest
1 голос
/ 25 апреля 2019

Я использовал =IF(A2=A1,C1&","&B2,B2), чтобы объединить строку связанных SKU в нескольких строках в одну ячейку. Проблема в том, что некоторые SKU начинаются с 0, и это было удалено по формуле. (Кроме того, некоторые строки отображаются в виде ячеек ошибок с красным текстом и заполняются. В сообщении об ошибке говорится, что это число, хранящееся в виде текста. Но это не так для всех, и я не знаю почему. )

Все SKU имеют 8 цифр, поэтому неправильные будут иметь 7 цифр. Например:

Похоже: 4286000,4286800,4310001,4310801,14872001,14872801,14877001,14877801

Должно быть: 04286000,04286800,04310001,04310801,14872001,14872801,14877001,14877801

Я попробовал функцию =TEXT и получил забавный (неправильный) результат. Например, в строке, где всем шести SKU требуется начальный ноль, я добавил 48 нулей в раздел функции format_text, запятые после каждых 8 нулей. Он ставит запятые через каждые три цифры, в основном выводя их как одно большое число.

Это что-то, что может быть решено с помощью формул, или требуется VBA?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Аналогично комментарию tigeravatar, который будет возвращать строку вместо числа, но будет иметь начальный ноль:

=RIGHT("00000000"&B2,8)

or

=RIGHT("00000000"&MAX(len(B2),8))

В основном он добавляет 8 нулей вперед, а затем принимает последние 8 символов.Или в случае второй формулы это займет минимум 8 символов и максимум длины того, что уже находится в ячейке.Если вы знаете, что у вас есть не менее 7 символов, вы можете просто добавить 1 ноль.

В качестве альтернативы вы можете добавить нули, используя функцию REPT:

=REPT("0",MAX(8-LEN(B2),0))&B2

Максимальное значение втам, если у вас есть более длинный номер, который в конечном итоге с отрицательным значением для REPT.В этом случае MAX вернет 0 вместо того, чтобы избежать ошибки с REPT.Результатом этой формулы также является строка.

Если вы хотите видеть начальный ноль, но сохраняете значение ячейки как число, вам необходимо применить к ячейке пользовательское форматирование.Просто помните, что если вы идете по этому маршруту, нуля на самом деле нет, ячейка просто отображает вещи длиной 8 цифр.

0 голосов
/ 25 апреля 2019

Вы можете просто изменить форматирование ячейки на обычное 00000000, если это визуально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...