温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - How to make dynamic consecutive numbers in one column
google-sheets javascript

javascript - 如何在一列中制作动态连续数字

发布于 2020-03-31 23:48:25

我有帐单清单。我必须不断根据我的银行帐户命名。

通常,我会按BANK ACCOUNT和DATE对工作表进行排序,然后使用“蓝色方块”标记NUMBER栏,然后再按日期进行排序。

我想编写一个脚本函数来遍历NUMBER列,该列定义并读取ACCOUNT列,并相应地标记NUMBER行。我以为我在某个地方设置了“设置”列来定义“自动格式化程序”的外观:

IF BANK {YY} -BANK- {NUMBER} IF CASH {YY} -CASH- {NUMBER}

最后,它应类似于以下示例:

 DATE   NUMBER       ACCOUNT
|------|------------|-------|
 1. Jan  18-CASH-01   CASH
 1. Jan  18-BANK-01   BANK
 2. Jan  18-CASH-02   CASH
 3. Jan  18-CASH-03   CASH
 4. Jan  18-BANK-02   BANK

我制作了一个演示表格,可以自由更改或克隆。基本公式已实现。仅缺少要迭代的公式

https://docs.google.com/spreadsheets/d/1aJRqODUMyJai-aVyTj3_konvc8qpL8idKEHNCs9cxSo/edit?usp=sharing

有人对我有建议或起点吗?我不擅长Google Sheets API。

提前非常感谢你

查看更多

提问者
Jan
被浏览
68
JPV 2020-01-31 23:29

也许可以通过公式来完成?在F1中,我进入

={"Format"; ArrayFormula(if(len(D2:D), text(C2:C7, "yy")&"-"& UPPER(D2:D)&"-"&iferror(SORT(ROW(D2:D),SORT(ROW(D2:D),D2:D,1),1)-MATCH(D2:D,SORT(D2:D),0)-ROW()+1),))}

看看对您有用吗?

编辑,以将后备帐户的名称匹配到某个范围,请使用vlookup

={"Solution A"; ArrayFormula(if(len(D2:D), text(C2:C7, "yy")&"-"& 
VLOOKUP(D2:D, SETTINGS!A10:C, 2, 0)&"- 
"&iferror(SORT(ROW(D2:D),SORT(ROW(D2:D),D2:D,1),1)- 
MATCH(D2:D,SORT(D2:D),0)-ROW()+1),))}