繁体   English   中英

在重复文本字符串的末尾添加数字以制作唯一的文档编号 - Apps 脚本

[英]Adding number at the end of duplicate text string to make unique document number - Apps script

我是脚本新手,并且被困在最近的一个项目中。

问题:

我正在尝试编写一个脚本,该脚本将根据谷歌表格列中的许多参数生成唯一的文档编号。 由于有多个文档共享相同的房间和楼层信息,我当前的脚本会创建重复项 - 我想要实现的是脚本搜索重复值并在末尾添加一个数字以使其唯一。

数据:

这是电子表格的样例

因此,理想情况下,我想要的不是多行显示:“PROJECT1-1-01-T-”我会将个人编号标记为:“PROJECT1-1-01-T- 00 ”“PROJECT1-1-01- T- 01 "等

当前代码:

function onOpen () {
const ui = SpreadsheetApp.getUi();
const menu = ui.createMenu('Create Document Number');
menu.addItem('Create Base Document Number','createbaseDocumentNumber');
menu.addToUi();

}



function createbaseDocumentNumber() {

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet =   ss.getActiveSheet();
const rows = sheet.getDataRange().getDisplayValues();

rows.forEach(function(row,index){

if (index === 0) return;
if (!row[2]) return;


if(row[4] == "TECHNICAL"){
var docNum = `PROJECT1-${row[2]}-${row[3]}-`


sheet.getRange(index + 1,1).setValue(drawNum + "T"); } 

if(row[4] !== "TECHNICAL"){
var docNum = `PROJECT1-${row[2]}-${row[3]}-`


sheet.getRange(index + 1,1).setValue(docNum + "E"); } 

  
})


}

如果有人有任何想法,我将非常感谢您的帮助!

对于非脚本解决方案,您可以在 A1 中尝试(清除 A 列中的内容后)

={"Document number"; Arrayformula (
  if (len(E2:E), 
  "PROJECT1-"&C2:C&"-"&D2:D&"-"&LEFT(E2:E)&"-"
  &text(countifs(C2:C&D2:D&E2:E, C2:C&D2:D&E2:E, row(E2:E), " 
  <="&row(E2:E))-1, "00")
 ,))}

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM