Google Sheets拖动公式时固定行引用并递增列引用的方法
简单解决方案:用INDEX或ARRAYFORMULA实现自动填充
方案1:单单元格公式拖动(新手易理解)
在「Weekly Top 3s」的C4单元格输入以下公式,向下拖动到C23即可:
=IF(INDEX('Weekly Averages'!$D$63:$W$63, ROW()-3)>0, INDEX('Weekly Averages'!$D$63:$W$63, ROW()-3), "")
- 逻辑:
ROW()-3计算当前行相对C4的偏移量,C4对应$D$63:$W$63区域第1列(D列),C5对应第2列(E列),以此类推直到W列 - 适配Top2(行64):把公式里的
63替换成64,在D4单元格使用后拖动 - 适配Top3(行65):把
63替换成65,在E4单元格使用后拖动
方案2:数组公式一键填充(高效免拖动)
直接在C4输入以下数组公式,自动填充C4到C23的所有内容:
=ARRAYFORMULA(IF(TRANSPOSE('Weekly Averages'!$D$63:$W$63)>0, TRANSPOSE('Weekly Averages'!$D$63:$W$63), ""))
- 逻辑:
TRANSPOSE将「Weekly Averages」中横向的D63:W63转为纵向,ARRAYFORMULA一次性计算所有单元格,满足条件显示数值,否则显示空白 - 适配Top2(行64):把公式里的
63替换成64,输入到D4即可 - 适配Top3(行65):把
63替换成65,输入到E4即可
动态获取对应名称的方法
假设「Weekly Averages」中,每周Top3的名称在对应平均值的上方一行(比如D62是D63平均值的名称),名称公式可复用逻辑:
- 拖动版(C4单元格):
=IF(INDEX('Weekly Averages'!$D$63:$W$63, ROW()-3)>0, INDEX('Weekly Averages'!$D$62:$W$62, ROW()-3), "")
- 数组版(C4单元格):
=ARRAYFORMULA(IF(TRANSPOSE('Weekly Averages'!$D$63:$W$63)>0, TRANSPOSE('Weekly Averages'!$D$62:$W$62), ""))
若名称在其他位置,只需修改公式中的$D$62:$W$62为对应区域即可。
内容的提问来源于stack exchange,提问作者LaravelNewbie
相关产品推荐
相关产品推荐

