Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

242
Visualizações
vlookup entre dos hojas de google copiando varias columnas rápidamente no for loop

A continuación se muestra un código que encontré aquí: https://webapps.stackexchange.com/questions/123670/is-there-a-way-to-emulate-vlookup-in-google-script Traté de optimizarlo para mi uso caso en el que vlookup desde la hoja de origen 'datos', y complete los valores en la hoja de destino 's'. El problema es que este código hace esto solo para una fila. ¿Hay alguna manera de recorrer todas las filas y vlookup y completar de manera eficiente? Segundo problema: la indexación de la hoja de origen es incorrecta, es decir, las variables dataValues e index ¿Hay alguna forma de resolver esto de manera eficiente, sin un bucle for e indexar correctamente la hoja de origen?

 /* recall that we want the follwoing columns => E, F, G, H, M /*/ function khalookup(){ var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data = SpreadsheetApp.openById("mysheetid"); var searchValue = s.getRange("B2:B").getValues(); var dataValues = data.getRange("A3:A").getValues(); var dataList = dataValues.join("ღ").split("ღ"); var index = dataList.indexOf([searchValue]); var newRange = [] var row = index + 3; var foundValue = data.getRange("E"+row).getValue(); var foundValue1 = data.getRange("F"+row).getValue(); var foundValue2 = data.getRange("G"+row).getValue(); var foundValue3 = data.getRange("H"+row).getValue(); var foundValue4 = data.getRange("M"+row).getValue(); s.getRange("K2").setValue(foundValue); s.getRange("L2").setValue(foundValue1); s.getRange("M2").setValue(foundValue2); s.getRange("N2").setValue(foundValue3); s.getRange("O2").setValue(foundValue4); }

aquí está la hoja de origen donde se realizará la búsqueda en función de la ID "Columna A"

hoja de origen

Y así es como se verá la hoja de destino después de que se haya realizado la búsqueda basada en la ID "Columna B".

Hoja de destino

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que su objetivo es el siguiente.

  • Desea copiar las columnas "E" a "H" y "M" de la hoja de cálculo de origen a las columnas "K" a "O" en la hoja de cálculo de destino. En este caso, desea copiar las filas en las que los ID de la columna "A" de la hoja de cálculo de origen son los mismos que los de la columna "B" de la hoja de cálculo de destino.

En este caso, ¿qué tal la siguiente modificación?

Guión modificado:

 function khalookup() { var srcSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dstSheet = SpreadsheetApp.openById("mysheetid").getSheets()[0]; var srcObj = srcSheet.getRange("A2:M" + srcSheet.getLastRow()).getValues().reduce((o, r) => { if (r[0].toString() != "") { o[r[0]] = [r[4], r[5], r[6], r[7], r[12]]; } return o; }, {}); var dstIds = dstSheet.getRange("B2:B" + dstSheet.getLastRow()).getValues(); var dstValues = dstIds.map(([b]) => srcObj[b] || Array(5).fill(null)); dstSheet.getRange(2, 11, dstValues.length, dstValues[0].length).setValues(dstValues); }
  • Cuando se ejecuta este script, se ejecuta el flujo anterior.

  • En esta modificación, desde su secuencia de comandos, la primera pestaña de la hoja de cálculo de destino se utiliza como hoja de destino. Si desea poner los valores en otra hoja, modifique var dstSheet = SpreadsheetApp.openById("mysheetid").getSheets()[0]; .

Referencias:

  • mapa()
  • reducir()
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda