Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
¿Cómo pegar una matriz 2D (con encabezados) en otra hoja con encabezados de columna establecidos aleatoriamente usando GAS?

Los datos:

 [ ["ID","Variação","Nome Site","Obs"],//Headers [11602,185,"Camisa Teste","Teste da Observação"] //To be pasted ]

Así es el destino:

Obs. Nombre del sitio Variación IDENTIFICACIÓN

Entiendo que podría adoptar el enfoque a continuación, pero teniendo en cuenta que el conjunto de datos tiene más de 40 columnas, esto no es tan factible:

 var data = sheet.getRange(1,1,2,4).getValues(); var obs = data.map(function(e){return e[0];}); var NomeSite = data.map(function(e){return e[1];}); ...

¿Cómo haría para encontrar el encabezado y "pegar" los datos en ese caso?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Creo que su objetivo es el siguiente.

  • Desea reorganizar los valores por su encabezado esperado.

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

Guión modificado:

 var expectedHeader = ["Obs", "Nome Site", "Variação", "ID"]; // Please set your expected header. // This sample value is from your question. var data = [ ["ID", "Variação", "Nome Site", "Obs"], [11602, 185, "Camisa Teste", "Teste da Observação"] ]; var [headers, ...rows] = data; const obj = rows.map(r => headers.reduce((o, h, j) => (o[h] = r[j], o), {})); var res = obj.map(o => expectedHeader.map(h => o[h] || "")); console.log(res) // [["Teste da Observação","Camisa Teste",185,11602]]

  • Cuando se usa este script, [11602, 185, "Camisa Teste", "Teste da Observação"] se reorganiza a ["Teste da Observação","Camisa Teste",185,11602] .

Referencias:

  • mapa()
  • reducir()
about 4 years ago · Juan Pablo Isaza Report

0

Me gusta Tanaike, pero me da un poco de miedo la función reduce() . Así que aquí está mi variante sin reduce() :

 function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var header = sheet.getDataRange().getValues()[0]; var data = [ ["ID","Variação","Nome Site","Obs"], [11602,185,"Camisa Teste","Teste da Observação"] ] var indexes = header.map(x => data[0].indexOf(x)); data = data.map(x => indexes.map(i => x.slice()[0] = x[i])); sheet.getRange(1, 1, data.length, data[0].length).setValues(data); }

Producción: ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!