我试图找到一个Google Spreadsheet公式,将一个5列数组的行转置到对角线上,就像这样(假设数据在例如 A1:E20
)
A1
A2 B1
A3 B2 C1
A4 B3 C2 D1
A5 B4 C3 D2 E1
A6 B5 C4 D3 E2
A7 B6 C5 D4 E3
...
我已经找到了相反问题的解决方案(从对角线到行或列--很多人帮助我),但没有找到这个问题的解决方案。
非常感谢您的帮助
编辑,我删除了我的旧评论,因为我看错了你的问题。
我删除了我的旧评论 因为我误读了你的问题。下面的代码适用于所有单元格,你只需要拖动到大小就可以了。该代码假设起始行为1,列为11,但可以调整为任何值。
=if((row()-(column()-11))>0,indirect(char(column()-10+64)&row()-(column()-11)),"")
编辑2.如果你想让这个单元格完全可变,那么你可以将它变成一个完全可变的单元格。
你只需要知道原始数据的左上角单元格 和新数据块的左上角单元格之间的距离就可以了。让我们把列数差 "dx "称为行数差 "dy"
=if(((row()-dy)-(column()-dx))>0,indirect(char(column()-dx+65)&(row()-dy)-(column()-dx)),"")
只需将dX和dy替换为数字,或单元格引用,就可以了!
编辑3:
最后一个,我保证,这个修复了最上面一行的空白单元格(虽然我只得到一个)。
=if(((row()-dy+1)-(column()-dx))>0,indirect(char(column()-dx+64)&(row()-dy+1)-(column()-dx)),"")