将第 n 列的数据导入另一列 sheet

Import data from nth columns to another sheet

我正在尝试从第 n 列导入所有数据,从第 3 行开始,从一个作品sheet ('Dataimport') 到另一个作品 ('Cleaned Data') spreadsheet,但到目前为止我只设法从每个第 n 列中获取一个特定的单元格:

=INDEX(Dataimport!$C:$HI;(ROWS($A:A1)*6)+1)

现在我手动执行,在每个单元格中使用 =TRANSPOSE(IMPORTRANGE("1yyb1k0uAdN1XcLWBhNq4jA0eInnePRoUt9IbuXDmfEU";"Dataimport!I3:I300")),以便水平导入列数据(这是它应该的样子):

带有数据的 sheet 看起来像这样。在这里,我想从 C 列开始的每第 7 列检索数据:

知道我该怎么做吗?

Publiclink: https://docs.google.com/spreadsheets/d/1hXFiSoduVjcZ6fbOcyp-BfI7m4So-01umLS0kBm-lVI/edit?usp=sharing

建议的解决方案

鉴于您的尝试 =INDEX(Dataimport!$C:$HI;(ROWS($A:A1)*6)+1),我建议使用 Google 工作表公式 OFFSET,它允许将索引指定为数学运算。

您将能够通过简单的数学运算指定列偏移量,以便为下面的行获取下一个所需的索引。

这是一个例子:

=TRANSPOSE(OFFSET(Dataimport!C:C9;1;(ROW()-1)*6;199;1))

使用此公式,您可以从 Dataimport 工作表中获取正确的列,然后将其转置以使其适合一行。

将此公式放入 Clean Data“D2”单元格将计算从 OFFSET 公式中考虑的第 3 列(“C”)开始的列偏移量 6。向下拖动公式会将列偏移索引调整到所需的 7 列范围。

参考

OFFSET

我想我有办法了。 我用虚拟数据构建了一个电子表格,然后我制作了一个公式,从 table.

中获取每第 n 列

这是我的解决方案: https://docs.google.com/spreadsheets/d/1J6x4H_cNczRRo40Ri6Nwa-YnZOISpxZmG4-JZ7tA1kA/copy

首先,我为两个 table 创建一个 ID 列,让 vlookup 工作 我为此使用 vlookup 和 arrayformula 公式: 为了抓取多列,我在 vlookup 中使用序列公式。 这将生成一个具有定义步长的数字数组。因此,如果您可以将每第 6 列定义为 6。这里的步骤在单元格 c23 中定义 =ArrayFormula(vlookup(A24:A43,A2:AB21,sequence(1,5,4,C23),false))

当然它可以在多个工作表或文件中工作。您只需要使用 importranges 而不是对范围的标准引用。