Copie y pegue los valores sin duplicados en las hojas de cálculo.
Quiero copiar y pegar solo los valores (no las fórmulas) desde el rango de origen al objetivo sin duplicados (algunos valores que ya se encuentran en el rango objetivo). Intenté seguir un par de tutoriales en línea para comenzar con la parte de copiar y pegar (ni siquiera la condición única) pero sigo obteniendo el error “los parámetros (cadena, número, número, número) no coinciden con la firma del método para SpreadsheetApp.Spreadsheet.getRange …”. Realmente no sé por qué, ya que estoy usando el mismo código. También intenté algo con copyTo en lugar de setValues pero obtengo el mismo error.
function paste() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var source = spreadsheet.getDataRange();
var sourceValues = source.getValues();
var rowCount = sourceValues.length;
var columnCount = sourceValues[0].length;
var target = spreadsheet.getRange(1,4, rowCount, columnCount);
target.setValues(sourceValues);
}
Aquí tienes una hoja de cálculo de muestra de lo que me gustaría obtener. Sé que sería más fácil con una fórmula, pero el problema es que mis datos en Origen son dinámicos porque provienen de un ImportXML, por lo que a veces los datos extraídos simplemente desaparecen, razón por la cual quiero pegar solo los valores cuando los obtengo antes de que desaparezcan.
davy.ai
Para copiar y pegar solo los valores (no las fórmulas) desde el rango de origen al objetivo sin duplicados, puedes modificar el código para usar el método
setValues()
con un bucle a través de los valores de origen para verificar los duplicados en el rango objetivo. Aquí tienes un ejemplo de código:Este código primero obtiene las hojas de origen y objetivo, y sus rangos de datos como arrays 2D. Luego, convierte los valores objetivo a un array plano 1D para verificar duplicados.
A continuación, el código realiza un bucle a través de los valores de origen y verifica cada valor en busca de duplicados utilizando
indexOf()
. Si un valor no es un duplicado, se agrega a una nueva fila que luego se agrega a un nuevo array 2D llamadonuevosValores
.Finalmente, el código obtiene la última fila de datos existentes en el rango objetivo utilizando
getLastRow()
, y pega los nuevos valores en la siguiente fila utilizandogetRange()
ysetValues()
.Puedes utilizar este código y modificarlo según tus necesidades específicas.