Google 表格:需要帮助自动实现从列到行的转置选项

问题描述 投票:0回答:2

我正在 Google 表格中寻找一个选项,可以在其中自动将列中的值转置/转置为行。类似于 Excel 中的 Power Pivot。

我在下面的谷歌表格链接中分享了一个示例和我的要求。

https://docs.google.com/spreadsheets/d/e/2PACX-1vQk5CGiXwkJcUT63ghfx77QIw2ojXMkXJJHYMCAVKfjNu_GnVroOEQD-g_SGoZNVw0pvH6_YBFzdMGs/pubhtml

在此感谢您的帮助。

enter image description here

google-sheets google-apps-script google-sheets-formula google-sheets-api
2个回答
1
投票

要在 Google 表格中自动将列中的值转置为行,您可以使用公式或 Google Apps 脚本。在您的具体情况下,如果您有一个包含多列的表格,并且希望将其转换为行和列交换的新表格,则可以使用

TRANSPOSE
函数或 Google Apps 脚本自定义函数。

使用公式:

  1. 在工作表的空白区域中,选择要开始转置数据的左上角单元格。
  2. 使用
    TRANSPOSE
    函数动态转置数据。例如,如果您的原始数据在
    A2:E10
    范围内,则可以使用以下公式:
=TRANSPOSE(A2:E10)
  1. 按 Enter 键,数据将被转置。

使用 Google Apps 脚本:

如果您想要一个更动态的解决方案,即通过按钮或事件触发换位,您可以使用 Google Apps 脚本。这是一个简单的例子:

  1. 单击“扩展”->“应用程序脚本”打开脚本编辑器。
  2. 用以下代码替换现有代码:
function transposeData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();
  var transposedValues = [];

  for (var i = 0; i < values[0].length; i++) {
    transposedValues.push([]);
    for (var j = 0; j < values.length; j++) {
      transposedValues[i].push(values[j][i]);
    }
  }

  var transposedRange = sheet.getRange(1, range.getLastColumn() + 2, values[0].length, values.length);
  transposedRange.setValues(transposedValues);
}
  1. 保存脚本。
  2. 您现在可以通过单击脚本编辑器中的播放按钮来运行
    transposeData
    函数,也可以将其分配给按钮或菜单。

请记住根据您的具体需求调整脚本中的范围和位置。上述脚本假设您的数据从单元格

A1
开始。

现在,每当您运行脚本时,它都会将数据转置到新范围。

选择适合您的工作流程和自动化要求的方法。


0
投票

您可以尝试:

=reduce(tocol(,1),B2:index(D:D,match(,0/(A:A<>""))),lambda(a,c,vstack(a,hstack(index(A:A,row(c)),index(1:1,column(c)),c))))

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.