Номера площадок определенной длины в электронной таблице Google [закрыто]

33

У меня есть столбец с целыми числами , как это: 1, 2, 3, 4, 5и я хочу , чтобы создать еще один столбец с этими значениями проложенных по длине три , как это: 001, 002, 003, 004, 005.

Можно ли дополнить строку по длине в Google Spreadsheet?

Я не смог найти стандартную функцию для этого.

Слава Фомин II
источник
2
Это не совсем то, о чем вы просили, но дает сравнимый эффект и может быть решением для обычной задачи, которую ищут люди: (1) выберите столбец с нужными числами. (2) Выберите «Формат»> «Число»> «Другие форматы»> «Формат пользовательского номера» ... (3) В диалоговом окне введите столько цифр, сколько цифр должна иметь строка числа, например, 000 в вашем примере.
Tophcito
2
Это не должно быть просто закрыто, это должно быть перемещено в webapps.stackexchange.com
Леннарт Роллан

Ответы:

53

Рекомендуемый способ - использовать функцию TEXT () .

Краткое описание того, как вы будете использовать его в вашем случае:

=TEXT(5,"000")

Будет вывод:

005

Конечно, вы бы заменили литерал 5 ссылкой на другую ячейку, где находится исходный номер.

Леннарт Роллан
источник
Был бы способ дополнить пробелами?
Алекс
Я думаю, что просто заменить "000" на "" выше
Леннарт Роллан
12

Если вы просто хотите, чтобы изменения отображались, вы можете применить произвольный формат числа «000» к ячейкам.введите описание изображения здесь

Выберите ячейки, нажмите « Формат»> «Число»> «Другие форматы»> «Пользовательский формат чисел» .

От редакторов Docs помогают :

Цифра в номере. Незначительный 0 появится в результатах.

sylr
источник
2
Можете ли вы отредактировать свой ответ, чтобы узнать, как ОП будет это делать?
Бурги
3

Временное решение

Вот временный обходной путь, который я придумал.

Рабочая формула

Просто используйте эту формулу:

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`

Замените 3на длину дополнения и 0на символ вставки. A2является источником дополнения.

объяснение

Рассмотрим следующую таблицу:

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------

У нас есть начальный столбец (A) с целыми числами, которые мы хотим дополнить. Столбец (B) будет содержать специальную формулу для обработки данных.

Объединить!

Прежде всего нам нужен способ объединить значение из Aстолбца с отступом строки. Мы можем сделать это с помощью CONCATENATEфункции:

=CONCATENATE("00", A2)

Повторение!

Прямо сейчас символ заполнения 0повторяется дважды в нашей формуле. Это не хорошо. Мы можем использовать REPTфункцию, чтобы повторить наш символ заполнения несколько раз так:

=REPT("0", 2)

Эта формула будет повторяться 0два раза. Давайте объединим их:

=CONCATENATE(REPT("0", 2), A2)

Рассчитайте длину!

Так-то лучше. Но длина заполнения имеет постоянное значение в нашей формуле, и это не будет работать с числами больше 9. Мы можем исправить это, вычислив длину дополненной строки (используя LENфункцию) и вычтя ее из нашей целевой длины:

=3-LEN(A2)

Давайте добавим это к нашей формуле:

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)

Однако мы получим отрицательные результаты для значений больше 999, и это нарушит REPTфункцию (количество повторений не может быть отрицательным).

Мы можем легко исправить это, добавив условие:

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")

Давайте сложим последние миры вместе:

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)
Слава Фомин II
источник
Отлично! Это лучший ответ, и он работает с нечисловыми значениями ;-D
t3chb0t