На ежедневной основе мне необходимо загрузить данные в одну из наших систем. Однако Excel удаляет предыдущие нули перед идентификаторами подрядчика. Поэтому я должен добавить три нуля вручную. Обычно я использую функцию CONCATENATE, но теперь идентификаторы идут по-другому, поэтому некоторым идентификаторам теперь нужно только добавить два нуля.Конкатенация пользовательских функций
пример:
ID
911111
Я использую СЦЕПИТЬ, чтобы сделать его выглядеть следующим образом:
000911111
я придумал формулу IF, которая определяет, если идентификатор начинается с номера NINE, чтобы сцепить TWO нули, а если нет, то добавить три нуля.
пример:
=IF(LEFT(A32,1)="9",CONCATENATE("00",A32),CONCATENATE("000",A32))
Теперь я хочу, чтобы создать эту формулу в качестве обычая, определенной таким образом, я не должен записать формулу когда время я работаю над данными каждый день.
Любые предложения, которые я действительно ценю.
Если вы просите UDF, вы можете пометить это [excel-vba] - но если вы это сделаете и не опубликуете попытку кода, вы рискуете потерять и закрыть голоса. – pnuts
Почему бы просто не использовать '= text (A32," 00000000 ")', предполагая, что все из них должны быть 8 символов или перед импортом, чтобы excel рассматривал столбец как текст (не усекал 0) или не помещал 'infront из нулей, чтобы преуспеть, знает, чтобы рассматривать его как текст ... Мне кажется, вы пытаетесь исправить симптом проблемы вместо того, чтобы в первую очередь решить проблему усечения основной причины. Похоже, что для столбца используется текст вместо числового или общего, и он считает, что числовое значение импорта будет решить проблему. – xQbert
Возможно, просто формат как '[> 899999]" 00 "0;" 000 "0'? Обратите внимание, что ваш пример кажется несовместимым с вашим текстом. – pnuts