Использование точного количества цифр (Microsoft Excel)
Хенк спросил, есть ли в 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 [Использование точного количества цифр]
.