google-apps-script - scripts - script developers
Rellene hacia abajo-Script de Google Apps para hojas de cálculo (4)
Esa función ya debería estar incluida en un programa de hoja de cálculo que creo (y "llenar" también).
Intentaré describir la funcionalidad nativa en GSheets relacionada con esto.
Si hace doble clic en el pequeño cuadrado azul en la parte inferior derecha de una celda o rango seleccionado, esto llenará automáticamente esa celda hasta el final de un bloque de celdas pobladas a la izquierda. Alternativamente, puede arrastrar este pequeño cuadro azul (abajo, arriba, izquierda o derecha) para completar automáticamente.
Puede seleccionar la celda de origen y las celdas debajo de ella (consulte el punto 4), y luego presionar Ctrl + D para completar. También puedes usar Ctrl + R para llenar a la derecha.
Puede seleccionar la celda de origen, presionar Ctrl + C para copiar, luego seleccionar las celdas arriba (o hacia la izquierda - y nuevamente referirse al punto 4), y luego presionar Ctrl + V para pegar. Esto tiene el efecto de rellenar (o izquierda).
Puede seleccionar rápidamente celdas en blanco debajo (o sobre, a la derecha o a la izquierda de) la celda de origen presionando Ctrl + Mayús + Abajo (o Arriba, o Derecha o Izquierda). Esto lo llevará al límite de la hoja o a la siguiente celda rellenada. Si es lo último, puedes presionar Mayús + Arriba (o Abajo, o Izquierda o Derecha) para volver a la última celda en blanco. Y luego llene según sea necesario según los puntos 2 y 3.
Deberá hacer esto para cada grupo no contiguo de celdas en blanco. Si desea poder autocompletar rápidamente grupos no contiguos de celdas en blanco, entonces sí, se requeriría un script.
¿Existe una función que pueda completar los datos de todas las celdas vacías de la fila de arriba?
Si no, ¿podría alguien ayudarme con un Script de Google Apps (u otra solución) que pueda revisar cada fila de mi hoja de cálculo de Google, verificar si hay celdas vacías y, si las encuentra, completarlas con los datos de la fila de arriba?
Esa función ya debería estar incluida en un programa de hoja de cálculo que creo (y "llenar" también).
¡Gracias!
Aquí hay un script de trabajo que agrega un menú personalizado a su hoja de Google. Cargue el script para una hoja de Google, seleccione un rango en la hoja y seleccione "Rellenar celdas en blanco" en el menú personalizado. Las celdas en blanco se llenarán con el valor de la celda de arriba.
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu(''Custom Menu'')
.addItem(''Fill Blank Cells'', ''menuItem1'')
.addToUi();
}
function menuItem1() {
fillBlankWithAbove()
}
//Iterates over the range from top to bottom
//and left to right, and fills blank cells
//with the value right above them.
function fillBlankWithAbove() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
Logger.log(''Range height is: '' + range.getHeight());
var values = range.getValues();
var width = values[0].length;
var height = values.length;
Logger.log(''Width is '' + width);
Logger.log(''Height is '' + height);
for (var i = 0; i < width; i++) {
var lastVal = '''';
for(var j = 0; j < height; j++) {
var currValue = values[j][i];
var dataType = typeof(currValue);
//Empty string check returns true if dataType
//is a number, and value is zero. In that case
//we don''t want to overwrite the zero, so only
//check emptyString for string types.
if(currValue === undefined ||
(dataType === ''string'' && currValue == '''')
) {
//getCell parameters are relative to the current range
//and ones based
var cell = range.getCell(j+1, i+1);
cell.setValue(lastVal);
}
else {
lastVal = currValue;
}
}
}
SpreadsheetApp.flush();
}
Utilice copyTo
. Sobre todo adaptaré la respuesta que encontré sobre esto aquí:
var sheet = SpreadsheetApp.getActiveSheet();
var originRange = sheet.getRange("A1:B1");
var target = sheet.getRange("A2:B");
originRange.copyTo(target);
Esto completará / expandirá automáticamente las fórmulas en originRange
a todo lo que se encuentra a continuación, como con copiar y pegar.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Name");
var formulas = sheet.getRange(10, 1, 1, 10).getFormulasR1C1();
var newRange = sheet.getRange(11, 1, 1, 10);
newRange.setFormulasR1C1(formulas);
Usando getFormulasR1C1 () y luego setFormulasR1C1 (fórmulas) Esta función imita el arrastre del mouse de la fórmula
Tenga en cuenta que si la celda no contiene una fórmula, mostrará un error. Deberá solucionar este problema vaciando las celdas.