Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 冻结自动增量临时_Google Sheets - Fatal编程技术网

Google sheets 冻结自动增量临时

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,

我想做这样的事情,我有序列号,如果列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,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)