2015-12-10 2 views
1

На ежедневной основе мне необходимо загрузить данные в одну из наших систем. Однако Excel удаляет предыдущие нули перед идентификаторами подрядчика. Поэтому я должен добавить три нуля вручную. Обычно я использую функцию CONCATENATE, но теперь идентификаторы идут по-другому, поэтому некоторым идентификаторам теперь нужно только добавить два нуля.Конкатенация пользовательских функций

пример:

ID 
911111 

Я использую СЦЕПИТЬ, чтобы сделать его выглядеть следующим образом:

000911111 

я придумал формулу IF, которая определяет, если идентификатор начинается с номера NINE, чтобы сцепить TWO нули, а если нет, то добавить три нуля.

пример:

=IF(LEFT(A32,1)="9",CONCATENATE("00",A32),CONCATENATE("000",A32)) 

Теперь я хочу, чтобы создать эту формулу в качестве обычая, определенной таким образом, я не должен записать формулу когда время я работаю над данными каждый день.

Любые предложения, которые я действительно ценю.

+0

Если вы просите UDF, вы можете пометить это [excel-vba] - но если вы это сделаете и не опубликуете попытку кода, вы рискуете потерять и закрыть голоса. – pnuts

+3

Почему бы просто не использовать '= text (A32," 00000000 ")', предполагая, что все из них должны быть 8 символов или перед импортом, чтобы excel рассматривал столбец как текст (не усекал 0) или не помещал 'infront из нулей, чтобы преуспеть, знает, чтобы рассматривать его как текст ... Мне кажется, вы пытаетесь исправить симптом проблемы вместо того, чтобы в первую очередь решить проблему усечения основной причины. Похоже, что для столбца используется текст вместо числового или общего, и он считает, что числовое значение импорта будет решить проблему. – xQbert

+2

Возможно, просто формат как '[> 899999]" 00 "0;" 000 "0'? Обратите внимание, что ваш пример кажется несовместимым с вашим текстом. – pnuts

ответ

0

В дополнение к ответам на форматирование, приведенным в комментариях, вы можете использовать функцию ПРАВИЛЬНО, чтобы отрезать начальные нули до соответствующей суммы.

Например, если A1 содержит строку чисел, между 0 & 9 цифр. Мы можем создать текст, представляющий 9 цифр строку, с таким количеством ведущих нулей по мере необходимости, а именно:

=RIGHT(REPT("0",9) & A1,9) 

ПОВТОР («0», 9) говорит Excel повторить символ «0» 9 раз. Затем он записывает любой текст в формате A1. Затем он принимает только самые правые 9 символов конкатенации.

Обычно я рекомендую варианты форматирования, указанные в этих комментариях, если вам не нужен текст в 9 символов для других целей формулы.

Смежные вопросы