Номера площадок определенной длины в электронной таблице Google
У меня есть столбец с целыми числами, как это: 1, 2, 3, 4, 5
и я хочу создать еще один столбец с этими значениями, добавленными к длине три, как это: 001, 002, 003, 004, 005
,
Можно ли дополнить строку по длине в Google Spreadsheet?
Я не смог найти стандартную функцию для этого.
3 ответа
Рекомендуемый способ - использовать функцию TEXT().
Краткое описание того, как вы будете использовать его в вашем случае:
=TEXT(5,"000")
Будет ли вывод:
005
Конечно, вы бы заменили литерал 5 ссылкой на другую ячейку, где находится исходный номер.
Временное решение
Вот временный обходной путь, который я придумал.
Рабочая формула
Просто используйте эту формулу:
`=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)