Хенк спросил, есть ли в Excel способ отображать шестизначное число, независимо от расположения десятичной точки. Например, 0,1 будет отображаться как 0,10000, 200 — как 200,000, а 25000 — как 25000,0.

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

Несколько подписчиков ExcelTips предложили использовать формулы для отображения числа по желанию. Например, следующая формула отобразит значение в формате A1 с использованием шести цифр:

=FIXED(A1,IF(ABS(A1)<1,5,5-INT(LOG(ABS(A1)))),TRUE)

Другие читатели предоставили формулы, которые основывались на преобразовании числа в текстовую строку и отображении ее как таковой. Однако преобразование числа в его текстовый эквивалент имеет явный недостаток, заключающийся в невозможности использования числа в других формулах. (Помните — на данном этапе это текст, а не число.) Приведенная выше формула не имеет этого ограничения.

При желании вы также можете использовать макрос для установки форматирования внутри ячейки, содержащей значение. Преимущество такого макроса в том, что вам не нужно использовать ячейку для формулы, как показано выше. Недостатком макроса является то, что вам нужно не забывать запускать его в ячейках всякий раз, когда значения в них меняются. Следующий макрос является примером такого подхода:

Sub SetFigures()

Dim iDecimals As Integer     Dim bCommas As Boolean     Dim sFormat As String     Dim CellRange As Range     Dim TestCell As Range

bCommas = False 'Change as desired

Set CellRange = Selection     For Each TestCell In CellRange         If Abs(TestCell.Value) < 1 Then             iDecimals = 5         Else             iDecimals = 5 - Int(Log(Abs(TestCell.Value)) / Log(10#))

End If

sFormat = "0"

If bCommas Then sFormat = "#,##0"

If iDecimals < 0 Then sFormat = "General"

If iDecimals > 0 Then sFormat = sFormat & _           "." & String(iDecimals, "0")



TestCell.NumberFormat = sFormat     Next TestCell End Sub

Чтобы использовать макрос, просто выберите ячейки, которые вы хотите отформатировать, а затем выполните его. Каждая ячейка в выбранном диапазоне настроена на отображение шести цифр, если число в ячейке не слишком велико или слишком мало.

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

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

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

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

Этот совет (1933) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Using_an_Exact_Number_of_Digits [Использование точного количества цифр].