Mostrando entradas con la etiqueta Redondear. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redondear. Mostrar todas las entradas

2015-12-05

La función redondear en Access, redondeo del banquero

Title La función Redondear en Ms Access permite redondear una cifra al número de decimales especificado. Sin embargo, presentar un comportamiento diferente a por ejemplo la función Redondear en Excel.

Ejemplo

De la base de datos Neptuno, emplearemos la tabla Pedidos y redondearemos la columna Cargo.

Hay tres columnas con el campo Cargo. La primera la de la propia tabla. La segunda arroja el resultado que nos daría Excel, es decir, cada vez que haya un 5 al final redondea el número hacia arriba. La tercera emplea la función Redondear de Access, cada vez que haya un 5 al final redondeará al número par más cercano.

Se conoce como el redondel del banquero. Se trata de un redondeo más justo. El cero no se redondea, del 1 al 4 hacia abajo y del 6 al 9 hacia arriba. Y el 5, en lugar de redondearlo siempre hacia arriba, se redondea en función del número par más cercano, si fueran números aleatorios un 50% de las veces en cada sentido.

Notas

La consulta para generar la vista anterior es.

La columna Campo_Formateado nos permite mostrar el resultado que obtendríamos en Excel. Para ello, en el modo diseño de la consulta entramos en las propiedades de la consulta y seleccionamos el formato deseado, Euro y un decimal en este ejemplo.

Sin embargo cambiar el formato en propiedades solamente altera la manera de mostrarlo. Si lo exportamos conservará todos los decimales. Si deseamos redondearlo de la misma manera que Excel, añadimos al número antes de redondearlo una cifra muy pequeña terminada en 1. Así evitamos que terminen en 5 y redondeará como deseamos.

Redondear([Pedidos]![Cargo]+0,000001;1)

Entradas relacionadas

2013-03-22

Generar números aleatorios entre dos valores con decimales

Title

Excel para Microsoft 365

Utilizamos la función MATRIZALEAT con la que podemos elegir, entre un mínimo y un máximo, si queremos que nos devuelva números enteros o valores decimales. También podemos elegir el número de filas y columnas a rellenar. Si deseamos copiar o arrastrar la fórmula dejamos dichos argumentos vacíos:

=MATRIZALEAT(,,0,10)

Versiones anteriores

En Excel hay dos funciones para generar número aleatorios:

  1. ALEATORIO, que genera un número aleatorio entre 0 y 1, con hasta 15 decimales. 
  2. ALEATORIO.ENTRE, que genera un número aleatorio entre dos límites especificados.
Pero si necesitamos un número aleatorio entre dos valores con decimales, no podemos usar directamente ALEATORIO.ENTRE pues genera solamente números enteros. Para circunvenir esta limitación, siendo a el límite inferior y b el superior, podemos usar:

=a+ALEATORIO()*(b-a)
Otra opción es multiplicar los dos límites por un 1 seguido de tantos ceros como decimales necesitemos, y luego dividir el resultado por dicho número. Por ejemplo, si necesitamos dos decimales, por cien:

=ALEATORIO.ENTRE(a*100;b*100)/100 'O si no queremos repetir 3 veces 100
=ALEATORIO.ENTRE(a;b)+ALEATORIO.ENTRE(a;b)/100
Con ALEATORIO, encontramos la limitación opuesta, si deseamos generar números enteros. REDONDEAR permite especificar el número de decimales. Por ejemplo, si queremos obtener ceros o unos:

=REDONDEAR(ALEATORIO();0)'O simplemente
=ALEATORIO.ENTRE(0;1)
Porque si usamos:

=ENTERO(ALEATORIO())
obtendremos siempre ceros pues ENTERO redondea al entero inferior más próximo.

Entradas relacionadas

Nube de datos