0
|
firegunzxLv6高级互助发布于2019-7-2 10:35(编辑于 2019-7-8 08:59)
|
可以通过公式生成: 下面是我的例子,ID规则是X开头+6位日期+3位流水 在A1单元格用sql取出当前日期的ID最大值, 然后在N2单元格里填入公式=seq()计算出序号, 然后在ID单元格里填入下面的公式 =if(len(A1)==0,"X" + format(today(), "yyMMdd")+right(CONCATENATE("00", N2), 3),left(A1,7)+right(CONCATENATE("00", TOINTEGER(right(A1,3))+N2), 3))
不用字母开头的话,公式改成 =if(len(A1)==0,format(today(), "yyMMdd")+right(CONCATENATE("00", N2), 3),left(A1,6)+right(CONCATENATE("00", TOINTEGER(right(A1,3))+N2), 3))
len(A1)==0 判断A1单元格是否有值,即按日期查询ID最大值,有就加1,没有就从1开始 format(today(), "yyMMdd") 取出当前日期,转化成6位,如190708 right(CONCATENATE("00", N2), 3) 计数当前行,并用0补位成3位流水码。 left(A1,6) 取出最大ID的前6位 right(CONCATENATE("00", TOINTEGER(right(A1,3))+N2), 3) 取出最大ID的流水号,加上数据行号生成新的流水号。
公式都有说明,在设计器公式窗口里。
|
-
王国强(提问者)
- 大神能讲解一下公式吗
-
firegunzx 回复 王国强(提问者)
- LEN(args): 返回文本串中的字符数或者数组的长度。
需要注意的是:参数args为文本串时,空格也计为字符。
参数args为数组时,直接返回数组长度。
示例:
LEN(\"Evermore software\")等于17。
LEN(\" \")等于1。
LEN([\'a\',\'b\'])等于2。
-
firegunzx 回复 王国强(提问者)
- IF(boolean,number1/string1,number2/string2):判断函数,boolean为true时返回第二个参数,为false时返回第三个。
boolean: 用于判断的布尔值,true或者false。
number1/string1: 第一个参数,如果boolean为ture,返回这个值。
number2/string2: 第二个参数,如果boolean为false,返回这个值。
示例:
IF(true,2,8)等于2
IF(false,\"first\",\"second\")等于second
IF(true,\"first\",7)等于first
-
firegunzx 回复 王国强(提问者)
- FORMAT(object,format) : 返回object的format格式。
object 需要被格式化对象,可以是String,数字,Object(常用的有Date, Time)。
format 格式化的样式。
示例
FORMAT(1234.5, \"#,##0.00\") => 1234.50
FORMAT(1234.5, \"#,##0\") => 1234
FORMAT(1234.5, \"¥#,##0.00\") => ¥1234.50
FORMAT(1.5, \"0%\") => 150%
FORMAT(1.5, \"0.000%\") => 150.000%
FORMAT(6789, \"##0.0E0\") => 6.789E3
FORMAT(6789, \"0.00E00\") => 6.79E03
FORMAT(date(2007,1,1), \"EEEEE, MMMMM dd, yyyy\") => 星期一,一月 01,2007
FORMAT(date(2007,1,13), \"MM/dd/yyyy\") => 01/13/2007
FORMAT(date(2007,1,13), \"M-d-yy\") => 1-13-07
FORMAT(time(16,23,56), \"h:mm:ss a\") => 4:23:56 下午
-
firegunzx 回复 王国强(提问者)
- TODAY():获取当前日期。
示例:
如果系统日期是2005年9月10日
则TODAY()等于2005-9-10。
|
|