【发布时间】:2020-07-16 03:37:41
【问题描述】:
我想在“总计”列中计算一个数字时进行实时排序,该列是基于用户输入的其他单元格的总和。排序应该是降序的,我确实使用以下方法实现了这个功能:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var range = sheet.getDataRange();
var columnToSortBy = 6;
range.sort( { column : columnToSortBy, ascending: false } );
}
它简短而甜蜜,但是总列中包含以下公式的空单元格,如果总和结果为零,则将其空白,否则打印结果:
=IF(SUM(C2:E2)=0,"",SUM(C2:E2))
它会导致这些带有不可见公式的行包含在范围选择中,并且在降序排序时,由于某种原因,它们会被顶上去。我希望这些空白行在排序之前排序到底部,或者在理想情况下从范围本身中删除(不删除它们以及它们从工作表中包含的公式)。
或者也许是一些更好的方法,它不需要我将公式拖过一整列大部分为空行的列。随着新条目的出现,我目前已采取手动一一添加公式的方式,但我宁愿避免这种情况。
编辑:根据要求在下面找到工作表的屏幕截图。如下图,第 6 列的总分需要按降序排列,赢家排在最前面。这应该有一个纵向运行的预先粘贴的公式,它总结了每个参与者的前面的列。
它前面的列(等级积分)是通过将“等级”列乘以 10 来自动计算得出的最终分数。可以消除此列,并且一旦离开,所有内容都会发生变化,但是保持实际获得的分数的视觉效果很好。用户输入在 3 个白色列中输入。
【问题讨论】:
-
公式的用途是什么?你能分享一张显示其用途的表格截图吗?如果实际的 c5:e5 为 1,-1,0 或为空白,则删除 0 的目的是什么,ifc5:e5 为空白且底部未使用(它只是底部的一堆空行)?跨度>
-
@TheMaster 用截图更新了问题。 Tanaike 的答案大部分都在那里,但公式被粘贴为值,这对于作为所达到等级点视觉效果的第 5 列是有问题的。
标签: sorting google-apps-script google-sheets filtering google-sheets-formula