什么是公式?
公式是一种数学表达式,用于描述数学关系、规律或运算。他能通过基本的算术运算实现单元格之间的数学关系,帮助客户解决单位换算,绩效计算,工资计算等复杂功能。
如何使用公式?
1、实现计算工资
工资=良品数*工资单价
使用下面的公式实现该功能:${报工.良品数} *${报工.工序.工资单价}
2、实现单位换算功能
例如把KG换算成G,使用下面的方式来实现:
首先,我们先在加工单列表创建一个扩展字段名字叫做千克,然后创建一个公式类型的扩展字段,在其中输入下面的公式:
${加工单.克}*1000
3、使用函数
1、case函数
介绍:
返回匹配条件的执行公式结果。
表达式:
CASE( 条件1, 执行公式1;条件2,执行公式2;…)
示例:
CASE( 1 == 1, 2+2; 1 > 2, 3+3;)返回4,因为匹配到条件“1等于1”,返回对应公式“2+2”的计算结果4。
2、ROUND函数
介绍:
将数字四舍五入到指定的位数,其中number是要舍入的数字,num_digits表示保留的小数位数(正数)或舍入到整数位的位数(负数)。
num_digits = 3
表示保留 3 位小数。num_digits = -1
表示舍入到十位(整数部分的十位)。
表达式:
ROUND(number,num_digits)
示例:
ROUND(3.1415926, 3)返回3.142,因为3.1415926四舍五入保留3位小数是3.142。
3、ROUNDUP函数
介绍:
用于向上舍入取整,其中number是要舍入的数字,num_digits表示保留的小数位数(正数)或舍入到整数位的位数(负数)。
num_digits = 3
表示保留 3 位小数。num_digits = -1
表示舍入到十位(整数部分的十位)。
表达式:
ROUNDUP(number,num_digits)
示例:
ROUNDUP(3.1415926, 3)返回3.142,因为3.1415926向上舍入保留3位小数是3.142。
4、ROUNDDOWN函数
介绍:
用于向下舍入取整,其中number是要舍入的数字,num_digits表示保留的小数位数(正数)或舍入到整数位的位数(负数)。
num_digits = 3
表示保留 3 位小数。num_digits = -1
表示舍入到十位(整数部分的十位)。
表达式:
ROUNDDOWN(number,num_digits)
示例:
ROUNDDOWN(3.1415926, 3)返回3.141,因为3.1415926向下舍入保留3位小数是3.141。
5、TRUNC函数
介绍:
用于截断小数部分,直接取整。
表达式:
TRUNC(number)
示例:
TRUNC(3.1415926)返回3,因为3.1415926截断小数部分是3。
支持符号(英文模式下)
- 校验字符白名单(英文模式)
- 运算符号:加 (+)、减 (-)、乘 (*)、除 (/)
- 判断符号:等于 (==)、不等于 (!=)、大于 (>)、小于 (<)、大于等于 (>=)、小于等于 (<=)
- 条件符号:且 (&&)、或(||)
- 语法符号:小括号 (())、dollar符 ($)、逗号 (,)、分号 (;)、双引号 (“)、单引号 (‘)
+ | 解释说明 | +是算术运算符,表示加法 |
使用方式 | number1+number2
| |
示例 | ${报工.良品数}+${报工.不良品数} | |
– | 解释说明 | -是算术运算符,表示减法 |
使用方式 | number1-number2
| |
示例 | ${报工.良品数}-${报工.不良品数} | |
* | 解释说明 | *是算术运算符,表示乘法 |
使用方式 | number1*number2
| |
示例 | ${报工.良品数}*2 | |
/ | 解释说明 | /是算术运算符,表示除法 |
使用方式 | number1/number2
| |
示例 | ${报工.良品数}/${报工.报工数} | |
== | 解释说明 | ==是关系判断符,表示是否相等,返回结果是布尔类型,若相等返回true,若不相等返回结果false |
使用方式 | logical1==logical2
| |
示例 | 1==2返回结果为false | |
!= | 解释说明 | !=是关系判断符,表示是否相等,返回结果是布尔类型,若相等返回false,若不相等返回结果true |
使用方式 | logical1!=logical2
| |
示例 | 1!=2返回结果为true | |
> | 解释说明 | >是关系判断符,表示是否大于,返回结果是布尔类型,若大于返回true,若小于返回结果false |
使用方式 | logical1>logical2
| |
示例 | 1>2结果为false | |
< | 解释说明 | <是关系判断符,表示是否小于,返回结果是布尔类型,若小于返回true,若大于返回结果false |
使用方式 | logical1<logical2
| |
示例 | 1<2结果为true | |
>= | 解释说明 | >=是关系判断符,表示是否大于等于,返回结果是布尔类型,若大于等于返回true,若小于等于返回结果false |
使用方式 | logical1>=logical2
| |
示例 | 1>=2结果为false | |
<= | 解释说明 | <=是关系判断符,表示是否小于等于,返回结果是布尔类型,若小于等于返回true,若大于等于返回结果false |
使用方式 | logical1<=logical2
| |
示例 | 1<=2结果为true | |
&& | 解释说明 | &&是条件符号,表示用户设置多个逻辑表达式是否同时满足,若同时满足返回true,若不是同时满足。返回false |
使用方式 | logical1<=logical2&& logical1>logical3
| |
示例 | 1<=2&&1>0结果为true | |
|| | 解释说明 | ||是条件符号,表示用户设置多个逻辑表达式是否满足任意一个,若满足任意一个返回true,若不是满足任意一个。返回false |
使用方式 | logical1<=logical2 || logical1>logical3
| |
示例 | 1<=2 || 1>3结果为true | |
() | 解释说明 | 小括号,使用时必须成对出现 |
使用方式 | 配合其他运算符使用,代表计算优先级 | |
, | 解释说明 | 逗号,当一个case语句由多个公式组成,中间用逗号分隔 |
; | 解释说明 | 分号,当公式编辑器有多个函数,函数之间用分号隔开 |
“”、” | 解释说明 | 双引号和单引号,当一个表达式有常量时,需将常量置于双引号内 |
绩效工资公式案例
案例1:阶梯工资
case(
${报工.良品数}>0 && ${报工.良品数}<=100,
${报工.良品数} * ${报工.工资单价};
${报工.良品数}>100 && ${报工.良品数}<=200,
100*${报工.工资单价} + (${报工.良品数}-100) * (${报工.工资单价} + ${报工.参数1});
${报工.良品数} > 200,
100${报工.工资单价}+100(${报工.工资单价}+${报工.参数1})+(${报工.良品数}-200)(${报工.工资单价}+${报工.参数1}2)
)
案例2:计时工资
${报工.报工时长}/${报工.标准工时}*${报工.工资单价}