Terminado

Script de Google Sheets para reorganizar estructura de datos

Publicado el 30 Diciembre, 2024 en Programación y Tecnología

Sobre este proyecto

Abierto

Necesitamos desarrollar un script para google sheets que unifique tablas de distintas solapas en una sola solapa, apilando las tablas una debajo de la otra, pero con un determinado orden personalizado

Contexto general del proyecto

Tenemos este script pero tenemos que hacerlo mas customizable, basicamente agregar solapas y columnas pero siempre con una loigica similar. Datos de entrada: Una tabla en la solapa A con columnas: Fecha, Detalle, Monto, Cuenta Debe, Cuenta Haber. Datos de salida: Una tabla en la solapa C con columnas: Fecha, Detalle, Monto, Cuenta. Lógica: Por cada fila en la solapa A, se deben crear dos filas en la solapa C: Fila 1: Copia los datos de Fecha, Detalle y Monto, y coloca la Cuenta Debe en la columna Cuenta. Fila 2: Copia los datos de Fecha, Detalle, invierte el signo del Monto y coloca la Cuenta Haber en la columna Cuenta. Function separarCuentas() { // Obtener las hojas var hojaA = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("A"); var hojaC = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("C"); // Obtener el rango de datos en la hoja A (ajusta el rango según sea necesario) var rangoA = hojaA.getRange("A2:E"); // Suponiendo que los datos empiezan en la fila 2 var valoresA = rangoA.getValues(); // Limpiar la hoja C antes de escribir los nuevos datos hojaC.getDataRange().clearContent(); // Iterar sobre los datos de la hoja A y escribir en la hoja C var filaC = 2; // Empezar a escribir en la fila 2 de la hoja C for (var i = 0; i < valoresA.length; i++) { var filaA = valoresA[i]; var fecha = filaA[0]; var detalle = filaA[1]; var monto = filaA[2]; var cuentaDebe = filaA[3]; var cuentaHaber = filaA[4]; // Si la fecha está vacía, continuar al siguiente registro if (fecha === "") { continue; } // Escribir el registro con el debe hojaC.getRange(filaC, 1, 1, 4).setValues([[fecha, detalle, monto, cuentaDebe]]); filaC++; // Escribir el registro con el haber (invertir el signo del monto) hojaC.getRange(filaC, 1, 1, 4).setValues([[fecha, detalle, -monto, cuentaHaber]]); filaC++; } }

Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Bug o cambio pequeño
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Integraciones de API Otros (Otras APIs)
Roles necesarios Programador

Plazo de Entrega: No definido

Habilidades necesarias

Otros proyectos publicados por O. L.