我正在尝试从大型Excel工作表中提取值。
目前,我的工作表是1列,可以说是2049行数据集(Sheet1
):
A1
A2
...
A2049
从工作表Sheet1
,我想以下列格式提取数据(其中A1
,A2
等是这些单元格的对应值:
A1 A65 ... A1985
A2 A66 ... A1986
A3 A67 ... A1987
... ... ... ...
A64 A128 ... A2049
我不知道该怎么做。我最初想过使用OFFSET
或=Sheet1!$A$COLUMN()*65
之类的东西;但是,我无法让OFFSET
以我想要的方式工作,而且上面的语法不会生效。
关于我需要什么功能或语法的任何想法?
答案 0 :(得分:1)
答案 1 :(得分:1)
为此你可以使用'索引'式。它的工作原理如下:
=index(lookUpColumn, row)
假设您要从A列开始将数据导入Sheet2 每行应该有64个值。 所以在A列中你有第1行到第64行的值, 在B 65至128栏中
这可以通过row() + (column()-1)*64
对于列A -> column() evaluates to 1
,因此术语缩减为row()
。
=INDEX('Sheet1'!$A:$A; ROW() + ( COLUMN() - 1 ) * 64)
编辑:正如斯科特克拉纳指出的那样,人们可能希望开始在B或C等处导入。这种转变可以通过更改公式中的1
来完成。对于B -> 2 for c -> 3
。如果导入开始于不同于1的行,则还需要将移位包含在row()
术语中
=INDEX('Sheet1'!$A:$A; ROW()- rowShift + ( COLUMN() - columnShift ) * 64)
对于B2:
=INDEX('Sheet1'!$A:$A; ROW()- 1 + ( COLUMN() - 2) * 64)