在 excel 公式中创建动态单元格块引用
Create dynamic cell block reference in excel formula
我不知道如何在 Excel 公式中创建动态单元格块引用。举个简单的例子,如果我有 5 个 id
,每个块有 scores
,我需要对每个块内的分数进行排名,那么创建公式来执行此操作的最简单方法是什么?我知道您可以使用相对引用(即 =RANK.EQ(B#, B2:B6)
)在前 5 个单元格中创建公式,复制这些单元格,然后粘贴到突出显示 15 个单元格的范围内。
如果块每次都是 5 行,那么您可以使用 INDEX
在列 B
中创建持续的 5 行块,方法如下:
辅助列 F
中的公式从 F2
开始向下:
=2+INT((ROW(A1)-1)/5)*5
辅助列 G
中的公式从 G2
开始向下:
=2+4+INT((ROW(A1)-1)/5)*5
C2
向下的公式:
=RANK(B2,INDEX(B:B,F2):INDEX(B:B,G2))
D2
向下的公式(没有辅助列):
=RANK(B2,INDEX(B:B,2+INT((ROW(A1)-1)/5)*5):INDEX(B:B,2+4+INT((ROW(A1)-1)/5)*5))
我不知道如何在 Excel 公式中创建动态单元格块引用。举个简单的例子,如果我有 5 个 id
,每个块有 scores
,我需要对每个块内的分数进行排名,那么创建公式来执行此操作的最简单方法是什么?我知道您可以使用相对引用(即 =RANK.EQ(B#, B2:B6)
)在前 5 个单元格中创建公式,复制这些单元格,然后粘贴到突出显示 15 个单元格的范围内。
如果块每次都是 5 行,那么您可以使用 INDEX
在列 B
中创建持续的 5 行块,方法如下:
辅助列 F
中的公式从 F2
开始向下:
=2+INT((ROW(A1)-1)/5)*5
辅助列 G
中的公式从 G2
开始向下:
=2+4+INT((ROW(A1)-1)/5)*5
C2
向下的公式:
=RANK(B2,INDEX(B:B,F2):INDEX(B:B,G2))
D2
向下的公式(没有辅助列):
=RANK(B2,INDEX(B:B,2+INT((ROW(A1)-1)/5)*5):INDEX(B:B,2+4+INT((ROW(A1)-1)/5)*5))