Si alguna vez habéis utilizado casillas de verificación
☐ ⛝ en un formulario para conseguir más de una opción en una misma pregunta,
os habréis encontrado que todas las contestaciones elegidas se meten en la misma celda
separadas por coma. Esto nos obliga a utilizar algún metodo especial para trabajar con ellas.
En el siguiente código conseguimos traducir estas opciones elegidas a otro idioma.
Para ello necesitamos tener en la hoja de cálculo dos columnas con la lista de opciones
y sus traducciones. Parece un problema menor, pero si tenemos, pongamos por caso
10 opciones, las diferentes combinaciones posibles como contestación pueden ser,
corregirme si me equivoco: 10*9*8*7*6*5*4*3*2*1 = 3628800 posibilidades.
function reemplazar() {
// Enlazamos a la hoja de calculo y a la pestaña
var aplicacion = SpreadsheetApp.getActiveSpreadsheet()
var itzulpenak = aplicacion.getRangeByName('itzulpenak').getSheet() // Utilizamos un intervalo
con nombre para que no influya que alguien cambie el nombre de la hoja
// necesitamos saber cuantas hay que traducir, conseguimos todas las filas de la pestaña
var todas = itzulpenak.getLastRow()
// Hacemos un bucle que empieza en la fila 5 y acaba en la última fila, para recorrer
todas las celdas
for (var fila= 5; fila<=todas;fila++){
// Conseguimos el valor de cada celda a traducir var celda = itzulpenak.getRange(fila, 32).getValue()
// Necesitamos buscar cada opción y traducirla por su prima en euskera
(hacemos un split y con un bucle traducimos cada trozo con replace)
// Para eso hacemos un split
var cada_una = celda.split(",")
// Por cada celda recorremos el resultado del split con un bucle y así traducimos for (una in cada_una){
// Si no hay nada salimos del bucle
if(cada_una== '') {
break;
}
var cada = cada_una[una].trim() // quitamos el espacio blanco que queda al principio
// utilizamos una formula para conseguir la traducción. En las columna E y F están las opciones y sus traducciones
var formula = itzulpenak.getRange(1, 31).setValue('=vlookup("'+cada+'";E:F;2;false)')
var resultado = itzulpenak.getRange(1, 31).getValue()
// Reemplazamos la traduccion en la celda, en cada vuelta el trozo
correspondiente
var celda =celda.replace(cada,resultado)
// Escribimos el resultado en la columna 33, cada una en su fila var resultado = itzulpenak.getRange(fila, 33).setValue(celda)
}
}
}
Suscribirse a:
Enviar comentarios (Atom)
Crear PDF horizontal
El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...
-
La fórmula importrange es muy potente, ya que nos permite unir datos de diferentes hojas de cálculo y, con un poco de imaginación, ofrecer ...
-
Este artículo tiene como objetivo mostrar el código básico para trabajar con Drive, es decir, para recorrer todos los archivos y subcarpetas...
-
El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...
No hay comentarios:
Publicar un comentario