При использовании формулы для объединения содержимого нескольких ячеек в одну, Крис не может заставить Excel сохранить форматирование исходных ячеек. Например, предположим, что ячейки A1 и B1 содержат 1 и 0,33 соответственно. В ячейку C1 он вводит следующую формулу:

=A1 & " : " & B1

Результат в ячейке C1 выглядит так:

1:0.3333333333

Причина, по которой полученный C1 не соответствует тому, что показано в B1 (0,33), заключается в том, что значение в B1 на самом деле не 0,33. Внутри Excel поддерживает значения до 15 цифр, поэтому, если ячейка B1 содержит формулу, такую ​​как = 1/3, внутренне она поддерживается как 0,33333333333333. Однако то, что вы видите в ячейке B1, зависит от ее форматирования. В этом случае форматирование, вероятно, настроено на отображение только двух цифр после десятичной точки.

Однако есть несколько способов получить желаемые результаты в ячейке C1. Один из способов — просто немного изменить формулу, чтобы значения, извлеченные из ячеек A1 и B1, были отформатированы. Например, в следующем примере для форматирования используется функция ТЕКСТ:

=TEXT(A1,"0") & " : " & TEXT(B1,"0.00")

В этом случае A1 форматируется для отображения только целых чисел, а B1 форматируется для отображения только двух десятичных знаков. Вы также можете использовать функцию ROUND для достижения аналогичного результата:

=ROUND(A1,0) & " : " & ROUND(B1,2)

Другое возможное решение — изменить способ работы Excel с точностью в книге. Выполните следующие действия:

  1. Откройте диалоговое окно «Параметры Excel». (В Excel 2007 нажмите кнопку «Office», а затем выберите «Параметры Excel. В Excel 2010 или более поздней версии откройте вкладку« Файл »на ленте и нажмите кнопку« Параметры ».)

  2. Щелкните параметр «Дополнительно» в левой части диалогового окна.

  3. Прокрутите доступные параметры, пока не увидите раздел При вычислении этой книги. (См. Рис. 1.)

  4. Убедитесь, что установлен флажок «Установить точность как отображаемую».

  5. Щелкните ОК.

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

Еще один подход — создать вашу собственную пользовательскую функцию, которая будет возвращать то, что отображается для целевой ячейки, а не то, что там хранится. В этом отношении отлично подойдет следующий макрос:

Function FmtText(rng As Range)

Application.Volatile     FmtText = rng.Cells(1).Text End Function

Чтобы использовать этот макрос, вы должны использовать такую ​​формулу в своем листе:

=FmtText(A1) & " : " & FmtText(B1)

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (8886) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Matching_Formatting_when_Concatenating [Соответствие форматирования при объединении].