
Estoy escaneando manualmente algunos informes en PDF que contienen diferentes números que generalmente tienen separadores decimales y de miles. La mayoría de las veces, la coma y los miles de separadores son los mismos que en mi configuración local (, = decimal, . = mil, ; = separador de argumentos). Desafortunadamente, a las funciones de Excel no les gusta que las alimenten con números que contienen un separador de mil.
Problema
Copio valores del PDF y no quiero que aparezcan como copiados en una celda, sino que primero los manipulo. No quiero que el número original aparezca en ninguna celda. Pero cuando copio algunos valores e intento enviarlos a una función, por ejemplo
=PROMEDIO(1.234.456.789;3.000.000.000)
me sale un error
There is a problem with this formula.
Not trying to type a formula?
When the first character is an equal (=) or minus (-) sign, Excel thinks it's a formula
· you type: =1+1, cell shows: 2
To get around this type an apostrophe (') first:
· you type '=1+1, cell shows =1+1
en este momento me veo obligado a quitar el separador de mil manualmente para obtener
=PROMEDIO(1234456789;3000000000) para que la fórmula funcione.
¿Existe alguna forma menos laboriosa de hacerlo?
Requisito de solución
Editar: no quiero una solución como
=PROMEDIO(SUSTITUTO("123.456.789";".";"");SUSTITUTO("3.000.000.000";".";""))
ya que hay que escribir mucho más; Preferiría tener una solución que
- incluyecambiar una configuración de Excel que evita que TODAS las funciones de Excel se quejen de miles de separadores, o
- como segunda mejor solución, una forma de escribir funciones VBA que hagan que funcione para cada función por separado (en este caso solo necesitaría un ejemplo funcional para PROMEDIO para poder implementar el resto por mi cuenta) como
=MiBuenoPromedio(1.234.456.789;3.000.000.000)
lo cual no puedo hacer ya que incluso una función de VBA se quejará de los parámetros formateados como el anterior. Puedo implementar una solución pasando los argumentos como una cadena como
=MyNotSoNiceAverage("1.234.456.789";"3.000.000.000")
lo cual tampoco es una opción satisfactoria, porque estoy pegando grandes cantidades de números y soy reacio a poner cada número entre comillas.
¡Gracias por tu ayuda!
Respuesta1
Puede utilizar SUBSTITUTE
para eliminar los puntos en los valores copiados.
Como esto:
=AVERAGE(SUBSTITUTE("123.456.789";".";"");SUBSTITUTE("3.000.000.000";".";""))
Respuesta2
Después de ti Copy
, puedes Paste using Text Import Wizard
.
Esto mostrará dónde Text Import Wizard
, donde Step 3 --> Advanced
puede especificar los separadores Decimal
y Thousands
que se utilizan en los datos que ha copiado.
Esto convertirá apropiadamente los valores a números con sus propios separadores.
Si no ve ese elemento disponible al hacer clic en la mitad inferior del Paste
botón en la Home
pestaña, personalícelo Quick Access Toolbar
para agregarlo allí. Debería encontrar ese comando en la lista si seleccionaChoose Commands
de All Commands
.
Respuesta3
Si uno tiene office 365:
=AVERAGE(--SUBSTITUTE({"1.234.456.789","3.000.000.000"},".",""))
De lo contrario, es posible que desee ingresar como matriz a través deCtrlShiftEnter
Por otro lado, también se podría justificar SUM
y dividir:
=SUM("1.234.456.789","3.000.000.000")/2