Автоматическое добавление "0" в ячейку ексель

  • Автор темы Автор темы Chilli81
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Chilli81

Участник
Топикстартер
Сообщения
4
Реакции
0
Здравствуйте уважаемые форумчане. Я столкнулся со следующей проблемой - есть ряд чисел, состоящих из 15 цифр, НО, некоторые из них имеют по 14 цифр. Как мне автоматически добавить цифру "0" в конце каждого 14- значного числа?
P.S Пользуюсь Ексель 2003
 
Формат ячеек->Все форматы->000000000000000
 
Но ведь так получится уже другое число!
Зачем это вообще? Иксель точная программа, просто так нолики дорисовывать не будет.
 
Но ведь так получится уже другое число!
Зачем это вообще? Иксель точная программа, просто так нолики дорисовывать не будет.

Ну для заливки в базу данных мне надо, она не жрет 14-значные числа, а "0" в конце 14-значного числа и так не воспринимает - ей главное факт наличия 15 цифр.
 
Тогда так 00000000000000"0"[<=99999999999999]
Разумеется, такое будет работать только для 14 значных чисел. Для 1,2,3... значных придется условие дописывать.
 
Призовем в помощь логику.
В соседний столбик (в данном случае это стобик D) можно ввести формулу
=ЕСЛИ(C9<99999999999999;C9*10;C9)
Правда, такое сработает, если надо 15 знаков, а есть 14. Если меньше, то эта формула не поможет и нужна будет иная, более длинная.
 
  • Спасибо
Реакции: Chilli81
Не надо никаких формул, в данном случае все делается через формат, как я написал.
00000000000000"0"[<=99999999999999];000000000000000[>99999999999999]
Поправил
 
  • Спасибо
Реакции: Chilli81
Да как скажете :)


UPD. Кстати, проверил у себя только что вот этот метод про "все форматы". Он тоже добавляет ноль в начале.
А моя формула в конце. Как и просил ТС. :)
 
Я поправил как надо - все работает.
 
Я поправил как надо - все работает.
Должен, однако, заметить, что это "всё работает" относится тоже только к добавлению одного нуля. Если число меньше, чем 14 символов, ТС тоже этот метод не спасет :)
 
Но он, да: лучше, чем с формулой.
 
A1*10^(15-ДЛСТР(A1))
 
Это тоже формула. То есть, работать будет только на отображение, причем ни каждую ячейку свою придется делать.
ЗЫ: Длстр - это же не наш метод! ;) А вдруг там дробь или строка?
 
Это тоже формула. То есть, работать будет только на отображение, причем ни каждую ячейку свою придется делать.
ЗЫ: Длстр - это же не наш метод! ;) А вдруг там дробь или строка?

Почему не наш метод, он даже строки и дроби прекрасно отработает в вариации =A1&ПОВТОР(0;15-ДЛСТР(A1))
Что касается отображения, то есть копирование и вставка только значений. И это надежней чем какие-то "форматы" от которых внутреннее значение не меняется.
И формула как раз меняет Value ячейки, в отличие от формата.
 
В таком варианте повтором - да. Но в варианте со степенью - классический "индусский код". ;)
Теперь далее. У нас не было задачи менять именно значение - насколько я понял, надо, чтобы при вводе любого 14значного числа оно автоматом становилось 15 значным. То есть, в той же ячейке и автоматически. Формулой такое не сделаешь - она не может модифицировать исходрую ячейку (циклическая ссылка), вдобавок на каждую ячейку придется заводить ячейку-приемник с соответствующей формулой. А форматом все будет на автомате. Ну, единственно, условие форматирования будет довольно громоздким, если каждый вариант учитывать. Но ведь, кроме 14значных и 15значных чисел других вариантов нет?
 
У нас не было задачи менять именно значение
Была задача перекинуть в базу данных, отсюда есть большая вероятность что форматами можно не получить нужного результата.
На возвращаемое значение через Range.Value формат ячейки не влияет.
Можно форматами накрутить любой внешний вид, а потом попробуйте этот вид получить в текстовом виде в другой ячейке.
 
Сейчас проверил - при экспорте в текстовый файл сохраняется именно отформатированый текст. Такшта... ;)
 
Статус
Закрыто для дальнейших ответов.