Mantenimiento de la precisión de dígitos significativos (Microsoft Excel)
Ken preguntó si es posible mantener la cantidad de dígitos significativos en los valores ingresados en Excel. Por ejemplo, «12.345600» y «1.230».
La respuesta corta, Ken, es que no puedes. ¿Por qué? Porque Excel siempre transforma todo a 15 dígitos significativos internamente. Esto, si ingresa 12 o 12.0 o 12.00000, Excel siempre los considera lo mismo que 12.0000000000000, aunque esto puede no ser técnicamente correcto en el verdadero sentido matemático. Además, dado que Excel convierte todo a 15 dígitos significativos, trunca los ceros finales en cualquier número que se muestre con el formato de número general.
(Debería ser obvio a partir de la explicación anterior que los términos «dígitos significativos», «precisión» y «número de lugares decimales» significan cosas completamente diferentes. Por ejemplo, el número 12.000 tiene tres lugares decimales, pero tiene cinco dígitos significativos. (Estoy seguro de que los teóricos matemáticos de la audiencia estarán encantados de corregirme si me equivoco).
Puede utilizar un formato numérico personalizado para celdas individuales, que mostrará su información utilizando la cantidad adecuada de dígitos significativos, pero esto no afectará el funcionamiento interno de Excel. Por ejemplo, podría formatear una celda para que muestre 12 o 12.0 o 12.00000, pero esto no cambia el hecho de que Excel aún considera todos los números para be 12.0000000000000.
Una forma de solucionar este problema es ingresar sus números como texto, colocando un apóstrofo delante de ellos. En otras palabras, en lugar de ingresar 12.0, ingresaría ’12 .0. Excel luego analiza la entrada como texto (debido a las apos trophe) y muestra 12.0 en la celda. El único inconveniente de este enfoque es que no puede hacer referencia directamente a la celda en todas las funciones matemáticas; algunos de ellos devolverán un error porque está incluyendo lo que Excel considera como texto en la función. La forma más sencilla de manejar esto es asegurarse de incluir la función = VALOR como parte de su fórmula general. Por ejemplo, si ingresa un número como texto en la celda B7, y luego necesita hacer referencia a él en una fórmula, puede hacerlo de esta manera:
=VALUE(B7) * 100
Esto funciona muy bien para fórmulas con referencias de celda única. Sin embargo, no funciona bien para referencias de rango. Si necesita hacer una suma o un promedio en un rango de valores ingresados como texto, Excel se bloqueará cada vez, devolviendo un error basado en lo que la función está tratando de hacer.
Esto nos lleva a la segunda solución potencial: mantener los dígitos significativos o el número de lugares decimales separados del valor real. Para muchos propósitos matemáticos técnicos, esta es la mejor manera de manejar la situación. Por ejemplo, en la columna C puede ingresar sus números como números. Excel, por supuesto, los convierte internamente en 15 dígitos significativos. En la columna D, puede ingresar varios números que representan el número de lugares decimales que desea aplicar a los valores en la columna C. Luego, puede usar los valores en la columna D para ayudar en las fórmulas que se refieren a los valores en la columna C.
Una posible solución final es simplemente formatear cada celda individual para que muestre solo el número de lugares decimales que desea que se muestren.
Con la advertencia mencionada anteriormente (que dicho formato no afecta la representación interna de los números en Excel), esta podría ser la mejor solución. Por supuesto, ajustar individualmente el formato de visualización de un par de celdas es fácil, pero hacerlo a cien o quinientas celdas es una historia diferente. Aquí es donde una macro puede resultar útil. Considere la siguiente macro:
Sub SigPlaces() Dim c As Range Dim strcell As String, NumFormat As String, DecSep As String Dim DecPtLoc As Integer, stringLen As Integer Dim numDecPlaces As Long DecSep = "." For Each c In Selection.Cells strcell = c.Value If IsNumeric(strcell) Then NumFormat = "#0" DecPtLoc = InStr(strcell, DecSep) If DecPtLoc > 0 Then NumFormat = NumFormat & DecSep stringLen = Len(strcell) numDecPlaces = stringLen - DecPtLoc NumFormat = NumFormat & String(numDecPlaces, "0") End If c.Value = Val(strcell) c.NumberFormat = NumFormat End If Next c End Sub
Si ingresa sus números como texto (con el apóstrofe, mencionado anteriormente), puede seleccionar las celdas y ejecutar esta macro. Las entradas de texto se convierten en números y el formato aplicado a esas celdas se cambia para que se muestre el mismo número de posiciones decimales que ingresó en la entrada de texto.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2045) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.