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 是销售点发票存档。
我设法在单独的单元格中使用 index 和 left 函数根据销售点生成下一个发票编号,但我获取错误消息以及我真正想要的结果。
有没有一种简单的方法可以将 POS1, POS2, POS3 sheets 生成的 ID 无误地放入下拉列表数据验证中?
Sheet Racun ->点击发票号码,选择销售点(例如POS1)。
前往 sheet 销售点 1 并点击保存。
https://docs.google.com/spreadsheets/d/1RD_rkbtmhC-OKh2dAtc32Qo1p42RdgKaiZsnI8uRKyg/edit?usp=sharing
对不起,如果我没有正确解释自己。英语不是我的母语。
建议
您可以尝试在 Apps 脚本中添加下面的 onOpen() 函数,以自动从 POS1
、POS2
、POS3
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:
情况: 1家公司,3个不同的销售点。 我必须制作 3 叠不同的发票。 发票编号为 1/1/1、1/1/2、1/1/3,其中第一个数字是递增的,第二个数字始终为 1,第三个数字是销售点标识符。
首先sheet是数据输入。 其次是发票生成器。 Sheet 3、4 和 5 是销售点发票存档。
我设法在单独的单元格中使用 index 和 left 函数根据销售点生成下一个发票编号,但我获取错误消息以及我真正想要的结果。
有没有一种简单的方法可以将 POS1, POS2, POS3 sheets 生成的 ID 无误地放入下拉列表数据验证中?
Sheet Racun ->点击发票号码,选择销售点(例如POS1)。
前往 sheet 销售点 1 并点击保存。
https://docs.google.com/spreadsheets/d/1RD_rkbtmhC-OKh2dAtc32Qo1p42RdgKaiZsnI8uRKyg/edit?usp=sharing
对不起,如果我没有正确解释自己。英语不是我的母语。
建议
您可以尝试在 Apps 脚本中添加下面的 onOpen() 函数,以自动从 POS1
、POS2
、POS3
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 cellA3
with=LEFT(Racun!C11, LEN(Racun!C11)-6)
to get the generated IDs, as seen below: