Excel: Fórmula para eliminar todos los caracteres no numéricos de una celda

Imagina que quieres eliminar todos los caracteres no numéricos de una celda en Excel. Con esta fórmula, que hace uso de la función TEXTJOIN() disponible en Office365 y Office ’19, podrías lograrlo. La fórmula genérica sería la siguiente

{=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,""))}

Vamos a explicarlo:

  • La variable A1 de la fórmula hace referencia al a cela que queréis limpiar, así que cuando la apliquéis tenéis que modificarla por la que corresponda en vuestra hoja de cálculo.
  • Esta fórmula convertirá en un array de caracteres los datos de vuestra celda (eso lo hará la función MID(), transformará la cadena en un array)
  • Los recorrerá (es lo que hace la función TEXTJOIN(), reconvertir el array de números en una cadena)
  • Quedándose solo con los números (eso es lo que hace la operación +0 de la fórmula, fuerza a Excel a convertir los valores de carácter a valores numéricos para esa operación, en caso de que sea un valor no numérico la función IFERROR() lo cambiará por un espacio vacío y en caso de que sea un valor numérico permanece con el mismo valor)

Comprobar de forma fácil si un número es par en una hoja de cálculo de Google Drive

En su día habíamos visto varias soluciones para comprobar con PHP si un número es par o impar. Esto también podemos necesitarlo cuando trabajamos con una hoja de cálculo de Google Drive, por suerte ya hay una función específica para ello:

La funció ES.PAR() recibe un número como parámetro y nos devuelve un valor booleno: verdadero si es par y falso si no lo es. Así de simple. Su funcionamiento sería como en el siguiente ejemplo:

=ES.PAR(22)

Importar datos desde una web a una hoja de cálculo de Google Drive

Seguimos con el tema de la ofimática y con las hojas de cálculo de Google Drive, que parece ser un material que os interesa. Hoy vamos a ver una función muy útil aunque un poco liosa: Con IMPORTHTML() podemos importar a la hoja tablas o listados de una web.

La función recibe tres parámetros: el primero, como es lógico, es la URL de la página desde la que queremos importar los datos, irá entre comillas dobles por ser una cadena de texto. El segundo, el formato que queremos importar (puede ser «table» para tablas o «list» para listas». Finalmente el tercero es un índice para indicar qué tabla quieres traer si hay varias dentro de la web, algo que puede ser lioso ya que a veces vamos «a ciegas» y puede que necesitemos varios ensayos de prueba y error hasta traer el dato que queremos. Por tanto la sintaxis sería tal que así:

=IMPORTHTML (dirección url; tipo de listado; índice numérico)

Vamos con un caso práctico, seguro que recuerdas que en su día vimos como exportar datos desde la web Basketball-Reference a formato Excel. Ahora vamos a hacer lo mismo pero usando directamente esta fórmula en una hoja de Google Drive:

=IMPORTHTML("https://www.basketball-reference.com/players/s/smithjr01.html";"table";1)

La línea de arriba importaría la primera tabla de la ficha de JR Smith, es decir, sus promedios en temporada regular. El resultado sería tal que así:

La función SPARKLINE() en la hoja de cálculo de Google Drive: insertar gráficas en una celda

Si bien la hoja de cálculo de Google Drive, al igual que Excel o que LibreOffice Calc, nos aporta una serie de cómodas herramientas para la creación de gráficos también disponemos de una función que nos permite crear un gráfico dentro de una celda. Dicha fución se llama SPARKLINE().

Ejemplo con los cuatro tipos de gráficos disponibles.

Esta función recibe como primer parámetro el rango de celdas del que queremos recoger los valores. Opcionalmente puede recibir un array de valores como parámetros opcionales. Estas opciones serían pares de valores, irían encerradas entre llaves, separadas del rango por un punto y coma. La separación entre pares se marcaría con un punto y coma, y dentro de cada par con el carácter de la barra \. Debajo te dejo un ejemplo porque explicado así es un lío:

=SPARKLINE(C1:C25,{"charttype"\"bar";"max"\50;"empty"\"zero"})

El parámetro «charttype» indicaría el tipo de gráfico y puede tener los siguientes valores:

  • line: es el valor por defecto, el que tomasi no se especifica ninguno, genera un gráfico de líneas.
  • bar: genera un gráfico de barras apiladas.
  • column: genera un gráfico de columnas
  • winloss: es un gráfico de barras pero que solo representa si el valor es positivo o negativo.

En la imagen de arriba podéis ver cómo se visualizarían los cuatro. Para cada tipo de gráficos tienes después una serie de opciones, que puedes consultar en la documentación oficial de Google.

Importar datos de mercados bursátiles en una hoja de cálculo de Google Drive con la función GOOGLEFINANCE

Ayer veíamos cómo usar la función GOOGLETRANSLATE() en una hoja de cálculo de Google Drive. Hoy vamos con otra función curiosa que nos permite usar otro servicio de Google: la función GOOGLEFINANCE().

La función GOOGLEFINANCE() recibe cinco parámetros, aunque solo es obligatorio el primero que sería el código del valor que queremos consultar. Tras eso definiríamos el atributo que queremos mostrar, una fecha de inicio para recuperar los datos históricos, una fecha de fin o número de días y finalmente si queremos ver el intervalo diario o semanal. Todos estos valores deben ser cadenas de texto entre comillas o referencias a celdas con texto. Si invocamos la función mandando solo el código veríamos el precio de dicha valor en tiempo real (si el mercado en el que cotiza lo permite, pues no hay soporte para todos los mercados).

El parámetro opcional con el atributo que queremos mostrar permite varias opciones, según consultemos datos históricos, en tiempo real o de fondos de inversión. Si no se especifica parámetro el valor por defecto es «price«. Si se especifica un rango de fechas entonces este parámetro es obligatorio.

Si se especifican parámetros de fecha, la solicitud se considera histórica y solo se admiten atributos históricos . Cuando trabajamos con datos históricos los valores que podemos mandar como atributo son los siguientes:

  • open: Es el precio de apertura en la fecha o el rango definidos.
  • close: Es el precio al cierre en la fecha o el rango definidos.
  • high: Es el precio máximo durante la fecha o el rango definidos.
  • low: Es el precio mínimo durante la fecha o el rango definidos.
  • volume: Es el volumen de mercado en la fecha o el rango definidos.
  • all: Sacaría todos los anteriores.

Aquí un ejemplo donde consultamos la cotización de Microsoft en el índice NASDAQ durante el primer trimestre de 2019, usando la función con estos parámetros: =GOOGLEFINANCE(«MSFT»;»all»;»01/01/2019″;»01/04/2019″;»WEEKLY»)

El resultado que nos daría sería el siguiente:


=GOOGLEFINANCE(«MSFT»;»all»;»01/01/2019″;»01/04/2019″;»WEEKLY»)

Los resultados en tiempo real se muestran como un valor en una única celda, y no todos los datos están disponibles para todos los símbolos. Para valores en tiempo real los posibles atributos a visualizar son los siguientes:

  • price: Es la cotización en tiempo real, con un retraso de hasta 20 minutos. Si no se especifica un atributo este es el valor que se tomará por defecto.
  • priceopen: Es el precio a la hora de apertura del mercado.
  • high: Es el precio máximo del día, hasta la hora actual.
  • low: Es el precio mínimo del día, hasta la hora actual.
  • volume: Es el volumen de transacciones del día actual.
  • marketcap: Es la capitalización del valor en el mercado.
  • tradetime: Es la hora de la última transacción.
  • datedelay: Es el retraso de los datos respecto de los datos en tiempo real.
  • volumeavg: Es el volumen medio diario de transacciones.
  • pe: Sería la relación entre precio y beneficio.
  • eps: Es la ganancias por acción.
  • hight52: Es el precio máximo en las últimas 52 semanas.
  • low52: Es el precio mínimo en en las últimas 52 semanas.
  • change: Es la variación del precio desde el cierre del día de mercado anterior.
  • beta: Se trata de el valor beta.
  • changepct: Es la variación porcentual del precio desde el cierre del día de mercado anterior.
  • closeyest: Es el precio al cierre del día anterior.
  • shares: Es el número de acciones emitidas.
  • currency: Indica la divisa en la cual se expresa el precio del valor.

Y para fondos de inversión los valores que podríamos usar serían:

  • closeyest: Es el precio al cierre del día anterior.
  • date: Es la fecha de comunicación del valor neto del activo.
  • returnytd: Es el retorno obtenido durante el año hasta la fecha.
  • netassets: Son los activos netos.
  • change: Es la variación entre el último valor del activo comunicado y el valor inmediatamente anterior.
  • changepct: Es la variación porcentual del valor neto del activo.
  • yieldpct: Es el rendimiento de distribución.
  • returnday: Es el retorno total en un día.
  • return1: Es el retorno total en una semana.
  • return4: Es el retorno total en cuatro semanas.
  • return13: Es el retorno total en trece semanas.
  • return52: Es el retorno total en 52 semanas (anual).
  • return156: Es el retorno total en 156 semanas (3 años).
  • return260: Es el retorno total en 260 semanas (5 años).
  • incomedividend: Es el importe de la distribución de efectivo más reciente.
  • inconmedividenddate: Es la fecha de la distribución de efectivo más reciente.
  • capitalgain: Es el importe de la distribución de ganancias de capital más reciente.
  • morningstarrating: Es la valoración en «estrellas» de la firma Morningstar.
  • expenseratio: Es el coeficiente de gastos del fondo.

Además de valores bursátiles también podemos conseguir la tasa de cambio entre dos monedas. Para ello debemos usar como parámetro una cadena de texto con el nombre de ambas divisas, juntas. En el ejemplo de abajo puedes ver como pasar de euros a dólares:

=GOOGLEFINANCE(«EURUSD»)

Esto nos devolverá la diferencia de valor entre las dos monedas, por lo que si queremos convertir una cantidad de una moneda a otra nos bastará con multiplicar. Por ejemplo, para convertir 200 euros a dólares sería así:

=GOOGLEFINANCE(«EURUSD»)*200

Crear tablas dinámicas (pivot tables) en la hoja de cálculo de Google Drive

Las tablas dinámicas en un software de hojas de cálculo nos permiten ver relaciones entre datos o delimitar grandes conjuntos de datos. Vamos a ver un ejemplo: yo en mi Google Drive tengo una tabla donde guardo los datos de la lista de discos del artículo de Mis 1001 discos indispensables, donde añado algunos datos extra que son los que utilizo para elaborar las gráficas. Voy a generar una tabla dinámica muy simple, que me va a sacar cuántos discos de cada década hay por cada país.

Veamos los pasos a seguir:

Datos de origen
  • Primero seleccionamos las celdas con los datos de origen. Lo recomendable es poner un encabezado a las columnas para trabajar de forma más clara.
  • En el menú superior hacemos click en Datos -> Tabla dinámica.
  • En el panel derecho (el de la imagen) hacemos click en Añadir junto a Filas seleccionamos el valor que queramos tener, repetimos la opreación con Columnas.
  • En el panel lateral hacemos click en Añadir junto a Valores y escogemos el valor que queremos ver en las columnas, junto a las opciones sobre como queremos que se traten dichos datos.
Resultado final

En cualquier momento puedes desplegar el menú de la derecha para agregar o quitar campos y valores. Para ver los detalles de una celda basta también con hacer doble click sobre ella, esto abrirá una visualización detalla de los valores que contiene.