You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Script将列数据分配到指定横向单元格区域的需求

Google Script 实现列数据横向分配逻辑

需求概述

将表格中每一列的纵向数据,转换为横向的一行数据:

  • 原C列数据分配至C1:J1区域
  • 原D列数据分配至K1:R1区域
  • 后续列按此规则依次分配

原始数据(8行6列)

M1  TU1 WE1 TH1 FR1 SA1
M2  TU2 WE2 TH2 FR2 SA2
M3  TU3 WE3 TH3 FR3 SA3
M4  TU4 WE4 TH4 FR4 SA4
M5  TU5 WE5 TH5 FR5 SA5
M6  TU6 WE6 TH6 FR6 SA6
M7  TU7 WE7 TH7 FR7 SA7
M8  TU8 WE8 TH8 FR8 SA8

预期输出示例(单列转横向一行)

M1 M2 M3 M4 M5 M6 M7 M8

实现脚本

function distributeColumnsToRows() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  
  // 获取原始数据范围(假设原始数据从A1开始,8行6列)
  const dataRange = sheet.getRange(1, 1, 8, 6);
  const data = dataRange.getValues();
  
  // 遍历每一列,将列数据转为横向行
  data[0].forEach((_, colIndex) => {
    // 提取当前列的所有行数据
    const columnData = data.map(row => row[colIndex]);
    // 计算目标行的起始列:第一列目标从C(3)开始,每列偏移8列(匹配每行8个数据长度)
    const targetStartCol = 3 + colIndex * 8;
    // 将横向数据写入目标区域(第1行,从targetStartCol开始,1行8列)
    sheet.getRange(1, targetStartCol, 1, 8).setValues([columnData]);
  });
}

脚本说明

  • 数据读取:获取当前活动表格中8行6列的原始数据
  • 列遍历处理:对每一列单独提取纵向数据,转换为横向数组
  • 目标位置计算:第一列目标起始列为C列(第3列),后续每列的目标起始列在前一列基础上偏移8列,适配每行8个数据的长度
  • 数据写入:将转换后的横向数组写入对应目标行区域

内容的提问来源于stack exchange,提问作者prabhu s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:38:19