elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Dudas Generales (Moderador: engel lex)
| | |-+  Google Sheets Recuperar fila de columna seleccionada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Google Sheets Recuperar fila de columna seleccionada  (Leído 3,431 veces)
Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Google Sheets Recuperar fila de columna seleccionada
« en: 6 Septiembre 2021, 17:45 pm »

Buenas gente, ando trabajando con una sheet y estoy tratando de automatizarla bastante.

Lo que intento hacer es que, al escanear una columna (con casillas de verificaciones), si el valor es verdadero, que busque en esa misma fila y recupere datos de determinadas columnas, no se si me explico.



Que un For escanee la columna Alertar, si es verdadero, que recupere en una variable o en otra celda de otra hoja, los datos de las columnas, Tarea, Area y Contacto (concatenadas).

Alguien tiene idea que metodos debo usar para recuperar dicha informacion?

pd: Olvide aclarar que intento hacerlo desde el editor de comandos.

Gracias.


« Última modificación: 6 Septiembre 2021, 18:04 pm por Enemy » En línea

B0xm4n

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Google Sheets Recuperar fila de columna seleccionada
« Respuesta #1 en: 7 Septiembre 2021, 04:17 am »

creo que este video te puede ayudar

https://www.youtube.com/watch?v=8Tr-z8AtBrc


En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Google Sheets Recuperar fila de columna seleccionada
« Respuesta #2 en: 7 Septiembre 2021, 14:03 pm »

creo que este video te puede ayudar

https://www.youtube.com/watch?v=8Tr-z8AtBrc

Ahora lo miro pero no estoy muy seguro de que sirva, eso es excel y yo estoy trabajando sobre google sheets. Aparte lo necesito en GAS, google app script, es decir, el lenguaje de programacion que utiliza google sheets. Necesito manejarme con funciones.

En serio no hay gente con conocimientos en esto??
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Google Sheets Recuperar fila de columna seleccionada
« Respuesta #3 en: 7 Septiembre 2021, 19:16 pm »

Saludos,

Tal cual lo has mencionado puedes usar un For sobre la columna de Checks y si tiene el check copiar los datos a otra Hoja. Yo suelo trabajar con Rangos de Datos de tal manera que solo indexo los datos que necesito consultar:

Código
  1. function myFunction() {
  2.  
  3.  var ss = SpreadsheetApp.getActiveSpreadsheet()
  4.  var dt = ss.getRange("Hoja 1!A2:E4")
  5.  
  6.  for (var i = 1; i <= dt.getNumRows(); i++) {
  7.    if (dt.getCell(i,5).isChecked) {
  8.      var tarea = dt.getCell(i,1).getValue()
  9.      var area = dt.getCell(i,3).getValue()
  10.      var contacto = dt.getCell(i,4).getValue()
  11.      var f = ss.getSheetByName("Hoja 2").getLastRow() + 1
  12.      ss.getRange("Hoja 2!A" + f).setValue(tarea + " " + area + " " + contacto)
  13.    }
  14.  }
  15. }

3. Pongo en una variable el Documento de Google Sheets actual (Active SpreadSheet)
4. Pongo en una variable el Rango de datos que con los que voy a trabajar, en mi caso en la Hoja 1 solo tengo tres registros (filas) para realizar mi ejemplo ("Hoja 1!A2:E4")
6. Con un For recorro todas las Filas (Rows) de mi Rango
7. Compruebo que la Celda 5 (la de los Checks) esté checkeado
8, 9, 10. Guardo en variables los datos de mi Rango que corresponden a la Fila actual (tarea, area y contacto)
11. Calculo la última celda vacía de la "Hoja 2" para poner ahí los datos
12. Copio los datos concatenados en un Rango precalculado en el paso anterior

Datos del ejemplo:



Resultados:

En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Google Sheets Recuperar fila de columna seleccionada
« Respuesta #4 en: 9 Septiembre 2021, 19:30 pm »

Saludos,

Tal cual lo has mencionado puedes usar un For sobre la columna de Checks y si tiene el check copiar los datos a otra Hoja. Yo suelo trabajar con Rangos de Datos de tal manera que solo indexo los datos que necesito consultar:

Código
  1. function myFunction() {
  2.  
  3.  var ss = SpreadsheetApp.getActiveSpreadsheet()
  4.  var dt = ss.getRange("Hoja 1!A2:E4")
  5.  
  6.  for (var i = 1; i <= dt.getNumRows(); i++) {
  7.    if (dt.getCell(i,5).isChecked) {
  8.      var tarea = dt.getCell(i,1).getValue()
  9.      var area = dt.getCell(i,3).getValue()
  10.      var contacto = dt.getCell(i,4).getValue()
  11.      var f = ss.getSheetByName("Hoja 2").getLastRow() + 1
  12.      ss.getRange("Hoja 2!A" + f).setValue(tarea + " " + area + " " + contacto)
  13.    }
  14.  }
  15. }

3. Pongo en una variable el Documento de Google Sheets actual (Active SpreadSheet)
4. Pongo en una variable el Rango de datos que con los que voy a trabajar, en mi caso en la Hoja 1 solo tengo tres registros (filas) para realizar mi ejemplo ("Hoja 1!A2:E4")
6. Con un For recorro todas las Filas (Rows) de mi Rango
7. Compruebo que la Celda 5 (la de los Checks) esté checkeado
8, 9, 10. Guardo en variables los datos de mi Rango que corresponden a la Fila actual (tarea, area y contacto)
11. Calculo la última celda vacía de la "Hoja 2" para poner ahí los datos
12. Copio los datos concatenados en un Rango precalculado en el paso anterior

Datos del ejemplo:



Resultados:



Muchisimas gracias! lo acabo de probar y funciona muy bien! El unico detalle es que al repetir la funcion, o sea su ejecucion, las tareas se guardan debajo de lo que ya habia, pero ahora reviso el codigo para ver como modificarlo.

Recien hoy veo tu msj y hasta hoy tenia este codigo que venia armando:

Código
  1. function ObtenerTareas() {
  2.  var ss = SpreadsheetApp.getActiveSpreadsheet();
  3.  var sheet = ss.getSheetByName('Hoja 1');
  4.  var data = sheet.getDataRange().getValues();
  5.  var mensaje; // CONTENEDOR ACUMULATIVO DEL MENSAJE
  6.  
  7.  mensaje = "Hay que ";
  8.  
  9.  for(var i=1;i<10;i++){ // En realidad hasta el final de la hoja
  10.   var fila = data[i][5]; // COLUMNA CON LAS CASILLA DE VERIFICACION
  11.  
  12.    if(fila == "VERDADERO") {
  13.      if (data[i][4] != "terminado") {
  14.        mensaje = mensaje & data[i][1] & " en " & data[i][] & ", " & data[i][4]; // caracter(10) para el salto de parrafo, probar '\n'
  15.      }
  16.    }
  17.  Logger.log(fila);
  18.  }
  19.  Logger.log(mensaje);
  20. }

Queria ir acumulando las tareas, una sobre otra, dentro de la misma celda pero no sabia bien como insertar el salto de parrafo, de todas manera me estaba faltan como seleccionar una celda en particular de la otra hoja.

por ejemplo:

a1: mensaje
a2:
colocar antena bromatologia viviana
problemas con dns mayordomia ezequiel
etc
etc

se entiende? la celda a la que iria el cumulo de texto seria a2, despues tengo otro algoritmo que va a trabajar con esa celda en particular.

Y como veras en mi codigo, la idea es que se envien las tareas que no esten como estado, "terminado", porque son tareas a realizar.
« Última modificación: 9 Septiembre 2021, 19:33 pm por Enemy » En línea

Enemy

Desconectado Desconectado

Mensajes: 285


Que vuelva el personal de hace 15 años al foro!


Ver Perfil
Re: Google Sheets Recuperar fila de columna seleccionada
« Respuesta #5 en: 9 Septiembre 2021, 19:50 pm »

jajaj ya le encontre la falla. Me falta agregar el salto de parrafo nomas. No se como insertar el caracter 10

pd: ya está, es "\n".

Gracias gente
« Última modificación: 10 Septiembre 2021, 01:59 am por Enemy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines