Google 工作表 - 如何在 "Status" 更改为值时将行移动到 sheet 的底部

Google Sheets - How to move a row to bottom of sheet when "Status" is changed to a value

我需要一些帮助!我做了很多研究,但没能弄明白。

我想弄清楚如何在 Status F 列值更改后将一行移到底部。这是一个例子 sheet:
https://docs.google.com/spreadsheets/d/1rFliETuAY-uzkgsLJJlaXC_9k0Fg0CkPPnn_v3ExwUY/edit?usp=sharing

这个页面会被填满,所以我需要那些没有状态的页面保持在顶部,而那些有状态的页面低于顶部。一旦状态改变,它就完成了,但我仍然需要数据。

...I need the ones that have no status to stay up top while the ones that have have a status to go below the top ones. Once the status is changed it is complete but i still need the data.

可能使用以下公式,根据您的需要调整范围

={query(A1:C22,"where A is not null and C is null",1);
  query(A2:C22,"where A is not null and not C is null")}

这是一个大胆的猜测,因为 您提供的信息几乎为零。

使用的函数:

解释:

您显然需要一个 onEdit() 触发器。即,一旦状态更改为任何值(不同于空白),该行将自动移至底部。

解决方案:

function onEdit(e) {

  const row = e.range.getRow();
  const col = e.range.getColumn();
  const as = e.source.getActiveSheet();
  if(as.getName() == "Sheet1" && col == 6  && row > 1 && !as.getRange(row,col).getValue()=='') {  
    const row_new = as.getRange(row,1,1,col);
    row_new.copyTo(as.getRange(as.getLastRow()+1,1,1,col));
    as.deleteRow(row);
  }
}

说明:

  • 单击工具 => 脚本编辑器:

  • Copy/Paste 上述代码片段到一个空白脚本文件并点击 保存:

  • 大功告成!每次将 F 列中的状态更改为 a 非空白值 该行移到底部。请记住 sheet 的名称必须是 Sheet1 才能使代码正常工作。 如果要更改 sheet 的名称,则应调整 相应地编写脚本。

插图: