Поддержание точности значащих цифр

Кен спросил, можно ли сохранить количество значащих цифр для значений, введенных в Excel. Например, «12.345600» и «1.230».

Если коротко, Кен, вы не можете. Почему? Потому что Excel всегда внутренне преобразует все до 15 значащих цифр. Таким образом, если вы вводите 12, 12,0 или 12,00000, Excel всегда считает их одинаковыми как 12,0000000000000, даже если это может быть технически неверным в истинном математическом смысле. Кроме того, поскольку Excel преобразует все в 15 значащих цифр, он обрезает любые конечные нули в любых числах, отображаемых с использованием общего числового формата.

(Из приведенного выше объяснения должно быть очевидно, что термин «значащие цифры» , “точность” и “количество десятичных знаков” означают совершенно разные вещи. Например, у числа 12.000 три десятичных разряда, но пять значащих цифр (я уверен, что теоретики математики в аудитории тоже будут рад исправить меня, если я ошибаюсь.)

Вы можете использовать собственный числовой формат для отдельных ячеек, который будет отображать вашу информацию с использованием правильного количества значащих цифр, но это не повлияет на то, как Excel работает внутренне. Например, вы можете отформатировать ячейку для отображения 12, 12,0 или 12,00000, но это не меняет того факта, что Excel по-прежнему считает все числа равными 12,0000000000000.

Один способ обойти это проблема заключается в том, чтобы ввести свои числа в виде текста, поставив апостроф перед м. Другими словами, вместо 12.0 вы должны ввести ’12 .0. Затем Excel анализирует запись как текст (из-за апострофа) и отображает в ячейке 12,0. Единственным недостатком этого подхода является то, что вы не можете напрямую ссылаться на ячейку во всех математических функциях; некоторые из них вернут ошибку, потому что вы включаете в функцию то, что Excel считает текстом. Самый простой способ справиться с этим – убедиться, что вы включили функцию = ЗНАЧЕНИЕ как часть общей формулы. Например, если вы вводите число в виде текста в ячейку B7, а затем вам нужно ссылаться на него в формуле, вы можете сделать это следующим образом:

= VALUE (B7) * 100

Это отлично подходит для формул со ссылками на одну ячейку. Однако он не работает для ссылок на диапазон. Если вам нужно вычислить сумму или среднее значение для диапазона значений, введенных в виде текста, Excel каждый раз будет задыхаться, возвращая ошибку в зависимости от того, что пытается сделать функция.

Это приводит нас к нам. ко второму потенциальному решению: сохранение либо значащих цифр, либо количества десятичных знаков отдельно от фактического значения. Для многих технических математических целей это лучший способ справиться с ситуацией. Например, в столбце C вы можете ввести свои числа в виде чисел. Excel, конечно, внутренне преобразует их в 15 значащих цифр. В столбце D вы можете ввести различные числа, которые представляют количество десятичных знаков, которые вы хотите применить к значениям в столбце C.. Затем вы можете использовать значения в столбце D, чтобы помочь в формулах, которые относятся к значениям в столбце C.

Окончательное возможное решение – просто отформатировать каждую отдельную ячейку так, чтобы отображалось только количество десятичные разряды, которые вы хотите отобразить. С оговоркой, отмеченной выше (что такое форматирование не влияет на внутреннее представление чисел в Excel), это может быть лучшим решением. Конечно, индивидуально настроить форматирование отображения пары ячеек легко, но сделать это для ста или пятисот ячеек – это совсем другое дело. Здесь может пригодиться макрос. Рассмотрим следующий макрос:

Sub SigPlaces () Dim c As RangeDim strcell As String, NumFormat As String, DecSep As StringDim DecPtLoc As Integer, stringLen As IntegerDim numDecPlaces As LongDecSep = «.» Для каждого c В Selection.Cells strcell = c.Value Если IsNumeric (strcell) То NumFormat = «# 0» DecPtLoc = InStr (strcell, DecSep) Если DecPtLoc> 0 Тогда NumFormat = NumFormat & DecSep stringLen = Len (strcell) numDecPlaces — NumFormat = NumFormat & String (numDecPlaces, «0») End If c.Value = Val (strcell) c.NumberFormat = NumFormat End IfNext cEnd Sub

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

Источник: frestage.ru

Бытовой вопрос