Я пытаюсь объединить две ячейки в одну и знаю, как сделать это красиво и легко, моя проблема в том, что числа ниже 100 (т. Е. 001) теряют свои "0".

Пример:

Ячейка A1 - "AAA" Ячейка B1 - "001" Ячейка C1 - = A1 & "-" & B1

Ячейка C1 должна показывать «AAA-001», но она показывает только «AAA-1»

Ячейка B1 отформатирована, чтобы быть числом, показывающим 001.

Я пытался использовать CONCANTATE и TEXT, но безрезультатно. Кто-нибудь знает, как я могу заставить Excel произвести результат «AAA-001»?

2 ответа2

5

Проблема в том, что если вы не скажете это каким-то образом, Excel будет интерпретировать число как число и не будет смотреть на формат, который вы указали для числа. Вы можете решить это двумя способами:

1) Формат B1 как текст

2) Более элегантно - используйте текстовую формулу для преобразования числа в текст в нужном вам формате:

 =A1&"-"&TEXT(B1,"000")

Это даст желаемый результат и сохранит B1 как число, которое можно использовать для расчетов. Текстовая формула принимает два аргумента, разделенных запятой, первый - число, второй - желаемый формат. Скажем, если вы хотите вставить знак фунта перед значением и использовать десятичную точку, ваш формат будет «£ 000,00»

0

Попробуйте добавить одну кавычку в ячейку перед 001, например: '001.

или же

если это невозможно, я бы использовал функцию VBA (поместите ее в модуль VBA):

Public Function Padding(cell As Range, paddingFormat As String) As String
  Padding = format(cell.Value, paddingFormat)
End Function

Тогда вы можете использовать формулу, например:= Concatenate(A1; "-"; Padding(A2, "000")) - заполнение возвращает 001, даже если A2 равно 1.

paddingFormat основан на функции Format (см. ссылку ниже). В вашем случае вам нужно 000, чтобы заставить 3 цифры как минимум все время. http://msdn.microsoft.com/en-us/library/59bz1f0h(v=vs.90).aspx

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .