我有一張有 5 列(日期、id、名稱、編號、行號)的作業表,當我在第二列(id)中插入任何資料時,我希望第五列(行號)自動填充行號我從作業表本身嘗試了手動方式而不是應用程式腳本,但有時它會被錯誤地洗掉,所以我想用應用程式腳本來做,我不確定是否有辦法,所以請幫助我。這就是我在示例中的意思:
第一行有標題(日期、id、名稱、編號、行號)假設我在第五行插入了一些資料(今天,4,ahmed,4584231,X)
我希望當我插入 ID(4) 時,行號會自動獲得值 (5),因為它在第五行,然后說我洗掉了第 3 行,我想要更改行號列中的所有值對于它進入的新行,我希望這對你來說很清楚。
非常感謝你
uj5u.com熱心網友回復:
這可以通過公式:
- 如果不為空
在行號列中插入此公式:
=if(B2<>"",row(),"")
結果:

只需將公式向下拖動/復制到列中即可。
這將檢查 B 列中的單元格是否為空白。如果沒有,請插入行號。
- ArrayFormula - 這很可能是您避免意外洗掉所需要的
或者您也可以使用arrayFormula,因此您只需在標題后的第一行插入公式,它將應用于整個列:
=arrayformula(if(B2:B <> "", row(B2:B), ""))
這也可以幫助您防止意外洗掉。洗掉時它將重新插入單元格上的值,只需確保不要洗掉單元格 E2 上的實際陣列公式。
還要檢查下面的單元格是否為空,否則會引發錯誤。
結果:

使用應用程式腳本
function onEdit(e) {
var ss = e.source.getActiveSheet();
var r = e.source.getActiveRange();
var row = r.getRow();
var column = 6;
if (r.getColumn() == 2) {
if (!e.value){
ss.getRange(row,column).clearContent();
}
else {
ss.getRange(row,column).setValue(row);
};
};
};
參考:
- IF 函式 - 非空白
- 陣列公式
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463296.html
上一篇:此格式如何按季度遞減:yyyy-Qx(2022-Q1、2022-Q2、2022-Q3等)
下一篇:將所有行放入陣列
