es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dividir columna en filas usando el script de Excel de Office.

Me gustaría separar una columna en filas usando el script de Excel Office, pero no puedo averiguar cómo hacerlo.

Tengo un horario en formato de tabla en Excel que me gustaría separar en columnas.

Tabla original

La tabla final debería verse así.

Tabla final

¿Es esto posible, y si es así, alguien podría compartir el código?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, se puede lograr utilizando un script de Excel Office.

    Puede usar el método Range.getValues() para obtener los valores de la columna que desea dividir en filas. Luego, puede recorrer cada valor y dividirlo utilizando el método String.split(). Finalmente, puede utilizar el método Range.setValues() para actualizar el rango con los nuevos valores.

    Aquí hay un ejemplo de fragmento de código que debería funcionar para el escenario dado:

    function splitColumnIntoRows() {
      let sheet = context.workbook.worksheets.getItem("Sheet1");
      let range = sheet.getRange("A2:A11"); // Cambie este rango para que coincida con sus datos.
      let data = range.getValues();
    
      let newData = [];
      data.forEach(row => {
        let splitted = row[0].split("\n");
        splitted.forEach(item => {
          if (item.trim() !== "") {
            newData.push([item.trim()]);
          }
        });
      });
    
      let newRange = sheet.getRange("B2"); // Cambie este rango para indicar dónde desea que comiencen los nuevos datos.
      newRange.setValues(newData);
    }
    

    Nota: Este código supone que la tabla original comienza en la celda A2 y que no hay celdas vacías dentro de la columna para dividir. Ajuste el rango en consecuencia para sus datos.

Comments are closed.