编辑:该问题已完全修改,以纳入评论者建议的屏幕截图。
我使用类似这样的电子表格在 Excel 中跟踪学生成绩
我经常发现自己编写的 Excel 公式一遍又一遍地使用相同的范围:
=SUM(C5:E5)/(COUNTA(C5:E5)+COUNTBLANK(C5:E5))
然后,我想在该范围中添加几列,即将其编辑为:
然后,我必须一次拖动每个框,或者一次编辑公式本身中的每个实例以获得:
=SUM(C5:F5)/(COUNTA(C5:F5)+COUNTBLANK(C5:F5))
但是有没有办法同时拖动它们?(从答案来看,显然不是。)随着公式变得越来越复杂,这一点变得越来越重要,例如:
=(SUM(AF5:AO5)-IF(COUNTBLANK(AF5:AO5)>0,0,MIN(AF5:AO5)))/(COUNTA(AF5:AO5)+COUNTBLANK(AF5:AO5)-1)0
这是删除最低分数的公式。我为每一行(针对班级中的每个学生)复制粘贴此公式一次。然后,如果我想添加作业,我需要将范围 AF5:AO5 的每个副本编辑为 AF5:AN5。
有没有办法重写此公式以仅使用一次引用范围?为了简单起见,我更喜欢使用没有 VBA 的单个单元格。
研究:我似乎无法在 Google 上找到任何相关内容。我能找到的最接近的内容是这次讨论如何编辑选择,而不是公式。
@Michthan 提到具有偏移量的命名范围,但不允许多个学生记录使用同一个名字。
答案1
根据@Kyle对我的问题的评论,以下是如何创建了相对命名范围:
从原始工作表开始:
对于单元格 F5 使用此公式:
=SUM(C5:E5)/(COUNTA(C5:E5)+COUNTBLANK(C5:E5))
在工作表中选择要编辑的第一个公式的单元格(示例中为 F5)
然后,单击“公式功能区”和“名称管理器”按钮
单击新建,然后输入范围的名称(例如,测验)。删除引用框中的所有内容,然后选择第一行中的数据:
现在,这是关键的一步。要使其成为相对引用,请删除引用中应更改部分前面的 $。由于数字部分会随着行与行的改变而变化,我们将删除 5 前面的每个 $:
单击“确定”并“关闭”返回工作表。现在,在第一个公式中,在所有地方使用命名范围:
=SUM(quizzes)/(COUNTA(quizzes)+COUNTBLANK(quizzes))
现在您有一个使用可复制的名称范围的公式!将单元格 F5 复制到单元格 F6:F9。
现在,您可以像往常一样添加另一列数据。只需单击第一个单元格,返回名称管理器,然后编辑范围。您甚至不需要将单元格复制到其他行。所有其他单元格也将自动更新,通过选择它们并查看绘制的框即可看到:
再次感谢@Kyle 提出这个解决方案。