Google 表格 - 生成下一个发票编号,多个销售点

Google Sheets - Generate next invoice number, multiple points of sale

情况: 1家公司,3个不同的销售点。 我必须制作 3 叠不同的发票。 发票编号为 1/1/1、1/1/2、1/1/3,其中第一个数字是递增的,第二个数字始终为 1,第三个数字是销售点标识符。

首先sheet是数据输入。 其次是发票生成器。 Sheet 3、4 和 5 是销售点发票存档。

我设法在单独的单元格中使用 indexleft 函数根据销售点生成下一个发票编号,但我获取错误消息以及我真正想要的结果。

有没有一种简单的方法可以将 POS1, POS2, POS3 sheets 生成的 ID 无误地放入下拉列表数据验证中?

Sheet Racun ->点击发票号码,选择销售点(例如POS1)。

前往 sheet 销售点 1 并点击保存。

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

对不起,如果我没有正确解释自己。英语不是我的母语。

建议

您可以尝试在 Apps 脚本中添加下面的 onOpen() 函数,以自动从 POS1POS2POS3 sheets & 中获取生成的 ID在 Racun sheet.

的单元格 C11 上构建新的数据验证下拉列表

脚本

function CopyRow(){
   var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
   var data = sh.getRange('A3:F3').getDisplayValues();
   var lastRow = sh.getLastRow()+1
   sh.getRange('A'+lastRow+':F'+lastRow).setNumberFormat("@").setValues(data);
}

function onOpen(){
  var sh = SpreadsheetApp.getActive();
  var cell = SpreadsheetApp.getActive().getSheetByName("Racun").getRange('C11');
  var values = [sh.getSheetByName("POS1").getRange("K2").getValue()+" (POS1)",
                sh.getSheetByName("POS2").getRange("K2").getValue()+" (POS2)",
                sh.getSheetByName("POS3").getRange("K2").getValue()+" (POS3)"];
  var rule = SpreadsheetApp.newDataValidation().requireValueInList(values).build();
  cell.setDataValidation(rule);
}

示例演示

保存 运行 脚本或重新打开 sheet 后,您将看到新的下拉菜单:

NOTE: On your POS1,POS2,POS3 sheets, just change the formula on cell A3 with =LEFT(Racun!C11, LEN(Racun!C11)-6) to get the generated IDs, as seen below: