Si no hace mucho veíamos cómo obtener una lista de valores únicos en la hoja de cálculo de Google Drive hoy vamos a ver cómo crear un selector de valores desplegable en una celda.
Lo primero es ir al menú de la cabecera, pulsar sobre Datos y en el menú que desplegará elegir Validación de Datos. Eso nos abrirá una ventana como esta:
En criterios tenemos varias opciones: fecha, números… pero en este caso nos interesan dos: Lista a partir de un intervalo y Lista de Elementos, ya que ambas nos darán como resultado el selector desplegable de valores que queremos.
La primera opción nos permitirá elegir los valores contenidos en un intervalo de celdas, por ejemplo A1:A5, y nos mostrará como opciones en el desplegable los valores únicos (eliminará las duplicaciones) contenidos en ese intervalo. La segunda opcion nos permite definir manualmente una lista de valores, que irán separados por comas. Es importante que marquéis la opción Mostrar la lista desplegable de la Celda para que de esa forma muestre el desplegable, si no lo que hará será dejaros escribir y mostrará un aviso o no permitirá insertar el valor, según lo que elijamos en la opción Si los datos no son válidos. Si queréis que solo puedan elegir valores del desplegable y no poder meterlos manualmente en esa opción debéis marcar el valor Rechazar Entrada.
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:
En los últimos tiempos casi todos los artículos técnicos están siendo de ofimática y, más en concreto, de Google Drive. Y esta nueva entrega sigue por ahí: ¿podemos importar datos de una hoja de cálculo a otra en Google Drive? Pues sí, podemos.
La función IMPORTRANGE() se encarga de ello, recibiendo dos parámetros (dos cadenas de texto, por tanto se les envían siempre entre comillas dobles): el primer parámetro será la URL de la hoja de cálculo donde está el origen de los datos, el segundo será una cadena donde especificamos la hoja y el rango de celdas a recoger. La sintaxis es tal que así:
Os voy a dejar un ejemplo más o menos real. Tengo una hoja de cálculo donde voy guardando los discos que añadiré a la próxima revisión de los 1100 discos esenciales (cuando crezca hasta 1250, dentro de unos meses). Ahora voy a importar de esa tabla las dos primeras columnas de las 20 primeras filas. Lo haría así:
Otro dato importante: por seguridad la primera vez que importemos los datos se nos solicitará conceder permisos explícitamente sobre la hoja de origen. Una vez concedidos, la hoja de cálculo de destino podrá extraer datos de cualquier parte de la hoja de origen hasta que el permiso se revoque también de forma explícita.
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)
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:
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.
Para eso nos serviremos de la función DETECTLANGUAGE(), que recibe como parámetro una cadena de texto y devuelve el código del idioma que corresponda. Tal que así:
=DETECTLANGUAGE(«Olá, bom dia») por ejemplo nos devolvería el código «PT» de portugués.
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»)
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í:
Es posible que ya hayas visto y usado el complemento de traducción automática del procesador de textos de Google Drive. Que básicamente hace uso de su herramienta Google Translate para traducir todo el documento. Pero ¿sabías que también puedes usar Google Translate como una fórmula de la hoja de cálculo de Google Drive?
La función a invocar sería GOOGLETRANSLATE(), recibiendo tres parámetros: el texto a traducir (o la celda en la que está ese texto), el idioma de origen y el idioma al que queremos traducirlo. Por ejemplo, para traducir la celda A1 de inglés a castellano sería:
=GOOGLETRANSLATE(A1;"en";"es")
Aquí os dejo una captura de pantalla de una prueba:
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.
Hace unos años habláramos aquí de funciones lógicas en LibreOffice. En aquel entonces ya existía Google Drive pero no conocía a mucha gente que lo utilizara para sus labores ofimáticas. Hoy por hoy su uso se ha popularizado bastante, así que mi idea es repetir la misma entrada, pero con las funciones lógicas de esta hoja de cálculo que, más o menos, son similares (aunque en caso del Drive son menos que en LibreOffice, se quedan en 7). Lo primero que veremos, la lista de funciones:
FALSO: Una función que no evalúa ningún dato, sólo devuelve el valor lógico false.
VERDADERO: Una función que no evalúa ningún dato, sólo devuelve el valor lógico true.
NO: Recibe una expresión lógica, su sintaxis sería NO(La_Expresión_Lógica) y devuelve el valor contrario al que recibe. Es decir, si la expresión que recibe es true la función devolverá false y viceversa.
SI: Esta función requiere tres parámetros que son una prueba lógica, un valor a devolver si se cumple y un valor a devolver si no, aunque sólo es obligatoria la prueba lógica. Más abajo os explicaré como anidar varios. La sintaxis básica es SI(prueba lógica; valor si se cumple; valor si no).
SI.ERROR: Función que recibe dos parámetros. Devuelve el valor del primero si este no es erróneo, en caso de que lo sea devuelve el segundo. La sintaxis es SI.ERROR(valor_a_evaluar,valor_si_error)
O: La función recibe varios argumentos y devuelve true en caso de que alguno sea verdadero, en caso de todos sean falsos devuelve false. La sintaxis es O(expresión1,expresión2,expresión3…)
Y: La función recibe un número variable de argumentos. En caso de que todos sean verdaderos devuelve true y caso de que alguno sea false devuelve false. La sintaxis es Y(expresión1,expresión2,expresión3…)
Ahora vamos con un ejemplo. Primero tenemos estos datos con nombres de usuarios, su ciudad y su edad. En base a la edad y la ciudad calcularemos un importe que tienen que pagar usando algunas de estas funciones lógicas. Las condiciones son las siguientes: si son de Madrid y mayores de 28 entonces pagan 100. Si son de Vigo, de Basauri o tienen más de 50 años entonces pagan 50. El resto pagan 200.