Google sheets 列中每个不同值的序列号

Google sheets 列中每个不同值的序列号,google-sheets,Google Sheets,我有一个由两个不同字母组成的输入列。因此,我想在图片上看到类似的东西。这个公式我将与ARRAYFORMULA一起使用,以获得无限行数。拦住№ 我试图使用=COUNTIFS($B$2:B2,“N”),但只有在我将公式手动复制到列下时,它才有效,但如果我这样做: =ARRAYFORMULA(COUNTIFS(($B$2):(B2:B),"N")) 它不起作用 如何在不需要手动复制的情况下复制此函数的行为 我建议写一个脚本来填充块号 我假设最上面的字母开始于cellinput!A4并且您希望从单元格

我有一个由两个不同字母组成的输入列。因此,我想在图片上看到类似的东西。这个公式我将与
ARRAYFORMULA
一起使用,以获得无限行数。拦住№ 我试图使用
=COUNTIFS($B$2:B2,“N”)
,但只有在我将公式手动复制到列下时,它才有效,但如果我这样做:

=ARRAYFORMULA(COUNTIFS(($B$2):(B2:B),"N"))
它不起作用

如何在不需要手动复制的情况下复制此函数的行为


我建议写一个脚本来填充块号

我假设最上面的字母开始于cell
input!A4
并且您希望从单元格
输入中获得块编号!C5
及以下。转到电子表格的菜单栏并选择脚本编辑器。然后编写以下脚本:

//主函数
函数writeBlocks(){
var sheet=SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(“输入”);
var numRows=sheet.getLastRow();
var startRow=4;
var inputCol=1;
var输出col=3;
var块=0;
//清拆旧座
表.getRange(startRow、outputCol、numRows-3、1)
.clearContent();
//如果新输入少于旧输出,请重新计算LastRow
numRows=sheet.getLastRow();
//获取输入数据
var input=sheet.getRange(startRow、inputCol、numRows-3,1)
.getValues;
//写入输出数据
对于(变量i=0;i

保存所有内容,刷新电子表格,菜单栏上应该有一个新选项。当您选择该选项时,它将清除旧的块号,并根据当前输入生成新的块号。希望这有帮助。

谢谢,但我在尝试运行脚本类型时出错错误:在对象函数getActiveSpreadsheet(){/**/}中找不到函数getSheetByName。(第3行,文件“代码”)我的错误是,我在getActiveSpreadsheet()方法中漏掉了一对括号。我已经编辑了我的帖子来更正它。希望它现在能工作。现在它没有错误,但我没有得到任何结果。实际上,我找到了另一种不用脚本就能得到块号的方法。在单元格B4
=ARRAYFORMULA(IF(R2:R=“N”,1,”)
中,它将在每一行中加上“N”-“1”,并在单元格C4中:
=ARRAYFORMULA(IF(R2:R)”(IF(isBlank(P2:P),ifError(1/0),sumif(row(P2:P),“这是一张测试表。现在的问题是如何制作
=index(H:H,max(isnumber(H$2:H2)*row)(H$2:H2)))
可与
数组公式一起使用
这是一张测试表[。现在的问题是如何使
=索引(H:H,max(isnumber(H$2:H2)*行(H$2:H2))
可与
数组公式一起使用
或如何对
数组公式的每行重复
=max(H$2:H2)
,并将当前行数改为H2