Бренда интересует количество значащих цифр в значении. Она задается вопросом, есть ли функция или формула Excel, с помощью которой она могла бы возвращать количество значащих цифр в значении, отображаемом в ячейке.
Этот вопрос не так прост, как кажется. Для некоторых людей определение количества значащих цифр в значении означает подсчет количества цифр, исключая любые десятичные точки или отрицательные знаки. Если это все, что вам нужно, то такая формула будет работать нормально:
= IF (A1Однако это не так просто. потому что количество значащих цифр в значении зависит от многих вещей. Суть в том, что вы не всегда можете определить, глядя на значение, сколько значащих цифр оно имеет.
Например, значение 100 может иметь 1, 2 или 3 значащих цифры. Предполагается, что значение 1,00 имеет 3 значащих цифры, но это может быть не так, если отображаемое значение является результатом форматирования, наложенного Excel - например, значение в ячейке может быть 1,0000437, которое Excel форматирует как 1,00. Вы можете узнать больше о значимых цифрах здесь:
https://excelribbon.tips.net/T012083Есть несколько общепринятых способов определения значимых цифр. цифры в числе, но любая попытка кодифицировать набор правил всегда открыта для обсуждения. Один такой набор правил был отмечен в Википедии в разделе «Определение значащих цифр» этой статьи:
http://en.wikipedia.org/wiki/Significant_figuresИмея в виду хотя бы элементарный набор правил (например, тот, что указан в статье в Википедии), можно разработать определяемую пользователем функцию, которая даст вам наиболее вероятное количество значащих цифр для значения.
Function SigFigs (rng As Range, Optional iType As Integer = 1) 'iType = 1 is Min' iType = 2 is Max Dim rCell As Range Dim sText As String Dim sText2 As String Dim iMax As Integer Dim iMin As Integer Dim iDec As Integer Dim i As Integer Application.Volatile Set rCell = rng.Cells (1) 'если не число, то ошибка Если не IsNumeric (rCell) или IsDate (rCell) Then SigFigs = CVErr (xlErrNum) Exit Конец функции Если sText2 = Trim (rCell.Text) sText = "" 'найти позицию десятичной точки (имеет значение) iDec = InStr (sText2, ". ") 'удалите любые числа, не являющиеся числами (включая десятичную точку). For i = 1 To Len (sText2) If Mid (sText2, i, 1)> =" 0 "And _ Mid (sText2, i, 1)You вызовите эту функцию, используя на листе следующее:
= SigFigs (A1, x)Вы можете заменить x с 1 или 2. Если указать 1, функция вернет минимальное количество значащих цифр. Если указать 2, функция вернет максимальное число. er значащих цифр. В большинстве случаев два возможных возвращаемых значения будут одинаковыми, за исключением значений, которые являются целыми числами без конечной десятичной точки, которые имеют конечные нули. Другими словами, если вы используете функцию для вычисления числа 1234000, то минимум ( x равен 1) вернет 4, а максимум ( x равно 2) возвращает 7.
Функция учитывает, как число отображается на листе, а это означает, что имеет значение, как число отформатировано. Он удаляет все символы форматирования, такие как отрицательные знаки, круглые скобки и запятые.