Google sheets 冻结自动增量临时
我想做这样的事情,我有序列号,如果列B勾选为true,就会被冻结,然后继续 也就是说,如果我选中3号旁边的Google sheets 冻结自动增量临时,google-sheets,Google Sheets,我想做这样的事情,我有序列号,如果列B勾选为true,就会被冻结,然后继续 也就是说,如果我选中3号旁边的复选框,它变成了2,即自动递增冻结在它前面的数字上,当我选中它下面的复选框bx时,自动锁定钢冻结,所以2号也出现了,之后复选框被取消选中,所以自动编号在2号之后恢复,从3号继续,依此类推 我试着做: =ARRAYFORMULA(if(len(H2:H)=0,,if(F2:F=true,offset(indirect(address(row(),column())),row()-1,0,1,
复选框,它变成了2,即自动递增冻结在它前面的数字上,当我选中它下面的复选框bx
时,自动锁定钢冻结,所以2号也出现了,之后复选框被取消选中,所以自动编号在2号之后恢复,从3号继续,依此类推
我试着做:
=ARRAYFORMULA(if(len(H2:H)=0,,if(F2:F=true,offset(indirect(address(row(),column())),row()-1,0,1,1)+1,offset(indirect(address(row(),column())),-1,0,1,1))))
但有一个错误:
检测到循环依赖项。要通过迭代计算来解决,
请参见文件>电子表格设置
我也试过:
=ARRAYFORMULA(if(B2:B=false,INDIRECT("a"&row(A1:A))+1,INDIRECT("a"&row()-1,true)))
但不起作用,并给出:
使用应用程序脚本自定义功能:
- 检索范围
B2:B
as
- 使用和将二维数组转换为简单数组并过滤掉空单元格
- 对于每个复选框,使用计算数组中
false
值的数量,直到该索引
下拉公式:
- 使用和获取当前行之前的范围
- 用于获取该行之前的
false
值的数量
- 在单元格
A2
中写入公式并向下拖动
参考:
什么是“然后继续”?正如您在所附的屏幕截图中看到的那样,如果我选中3号旁边的复选框,它会变成2号,即自动增量冻结在它前面的数字上,当我选中它下面的复选框BX
时,自动防钢冻结,因此也会出现2号,在此之后,复选框被取消选中,因此自动编号在2之后恢复,并从3继续,依此类推,希望这能使它更清楚,谢谢您的支持。您希望它是ARRAYFORMULA
,还是从第一个单元格向下拖动也合适?另外,您愿意使用应用程序脚本吗?@Iamblichus感谢您的支持,事实上我不希望用户做任何像copy/pate
或拖拽
之类的事情,所以我认为arrayformula
可能是最好的,因为我是为用户编写的,然后锁定cloumn,这样他就不会错误地将其分发,如果我可以用自定义函数来做,我会接受的。非常感谢自定义函数我尝试通过让requestRef=new Array()count.forEach(函数(元素){if(parseInt(元素)<10){requestRef.push('PRF.SC21.DNP.00'&element)}else if(parseInt(元素))来中继返回计数{requestRef.push('PRF.SC21.DNP.0'&element)}其他requestRef.push('PRF.SC21.DNP.&element)});return requestRef;
但是我得到了它,只返回0的数组,有什么想法吗?@HasanAYousef我想你应该在数字之前预先准备这些字符串,然后返回例如,PRF.SC21.DNP.002
。不是这样做的方法。你可以这样做:“PRF.SC21.DNP.00”+元素
,或`PRF.SC21.DNP.00${element}`
()。非常感谢,现在很好。
function autoIncrement(checkboxes) {
checkboxes = checkboxes.flat().filter(String);
const count = checkboxes.map((val,i) => {
return [checkboxes.slice(0,i+1).filter(check => !check).length];
})
return count;
}
=COUNTIF(INDIRECT("B2:B"&ROW()),false)