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 的名称,则应调整
相应地编写脚本。
插图:
我需要一些帮助!我做了很多研究,但没能弄明白。
我想弄清楚如何在 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 的名称,则应调整 相应地编写脚本。