示例:创建单位薪资公式
为简单起见,以下示例使用英文逗号分隔符分隔不同的项。某些浏览器设置要求您使用英文分号分隔符。
在此示例中,单位薪资公式引用了在“加薪月份”假设和“加薪百分比”假设中输入的值。
关于单位薪资计算需要了解的一些事项:
- “单位薪资”列是一个初始余额(累计)元素,按每月差额输入计划值,这表示计划方输入的数据随后将结转至该版本中的所有期间。您对该元素进行的计算将加到账户上个月的余额中。
- 中 IF 语句的语法Adaptive Planning与 Excel 的不同之处:
- Adaptive Planning示例:if(ACCT.A6=1 and ACCT.B6=0,X,0)
- Excel 示例:if(and(A6=1, B6=0),X,0)
- 单位薪资计算中包含三个基本时间引用。每个引用分别为版本中的每个月份指定一个数字,并可用于将日期列与版本中指定的月份数字进行比较。
- Month:为每个月份指定一个数字(1 到 12),该数字跟在日历年度后并在整个版本中重复出现。
- Fiscalmonth:为每个月份指定一个数字(1 到 12),该数字跟在公司的会计年度后并在整个版本中重复出现。
- Versionmonth:为每个月份指定一个数字。版本的第一个月份为 0。这些数字会随着时间的推移而延续(不重复)。正数表示即将到来的月份。负数 (-) 表示过去的月份。
单位薪资计算公式如下:
IF((VersionMonth(this) > 0) AND ROW.Headcount>0 AND (((VersionMonth(this) - VersionMonth(ROW.StartDate) > 1) AND ASSUM.RaiseMonth = 0 AND FiscalMonth(this) = FiscalMonth(ROW.StartDate)) OR (ASSUM.RaiseMonth = Month(this))), ROW.PayRate[time=THIS-1]*ASSUM.RaisePct, 0)
下表对计算中的每个语句进行了详细分析:
语句 | 描述 |
|---|---|
VersionMonth(this)>0
| 此语句检查以下情况:为整个版本中的任意给定期间指定的月份数字是否确实在该版本的第一个月份之后。这样可以防止在版本的第一个月份予以加薪。此语句假设您输入了员工第一个月份的工资作为员工的起始工资。 |
ROW.Headcount>0
| 验证员工是否已受雇,以便加薪。 Headcount 基于员工的开始日期和结束日期列。它是二进制触发器,结果为 0 或 1 以指明员工在每个期间是否受雇。 |
VersionMonth(this)-VersionMonth(ROW.StartDate)>1
| 检查每个月的公式应用情况,以确保在员工开始日期之后才予以加薪。该 VersionMonth 系统会根据唯一性检查指定给每个期间的 VersionMonth 指定到员工的开始日期。如果差额大于 1(期间在员工开始日期之后),则员工可以获得加薪,前提是所有其他日期 and 符合条件。 |
ASSUM.RaiseMonth = 0
| 每个月检查一次,查看是否 RaiseMonth 假设为 0 。对于周年纪念日加薪,加薪月份必须为 0。 |
FiscalMonth(this)=FiscalMonth(ROW.StartDate)
| 选中每个 FiscalMonth 并将其与指定的 FiscalMonth 作为员工的开始日期。例如:如果员工雇用日期是 8/12/2016 且组织的会计年度与日历年度相同,即指定的月份 FiscalMonth(ROW.StartDate) 将为 8。每年 1 月, FiscalMonth(this) 返回 1 。2 月份返回 2 ,依此类推。此短语仅在以下情况下为 true: FiscalMonth 与 FiscalMonth 雇用日期的开始日期这就是每年在周年纪念日计算某些数据的方式。 |
ASSUM.RaiseMonth = Month(this)
| 检查以确保您输入的数字 RaiseMonth 假设与当前月份的数字匹配。例如:如果您希望在 2017 年 4 月进行加薪,请 4 在假设中 RaiseMonth 日期为 2017 年 4 月。 |
ROW.PayRate[time=THIS-1]*ASSUM.RaisePct
| 定义 True 子句。如果前面的陈述为真(所有 and 语句和其中一项 or 语句),则所有 IF 满足条件,并且加薪(ASSUM.PaisePct )已应用。该 PayRate 公式 a 引用上一期间 [time=THIS-1] ,而不是当前期间。原因如下:
|
0
| 定义 False 子句。当其中一个(或多个) IF 不满足条件,则加薪 0 并且未向余额添加任何内容。 |
用一句话来表述此公式的话,则是:
“如果这是此预算版本中的月份,并且已雇用该员工,并且该期间在员工开始日期之后,并且假设的值为 0,并且当前月份与员工开始日期所在月份相同或者当前月份与假设中当前月份的值匹配,则予以加薪。否则,不予加薪。”
其他加薪选项
组织通常不会在加薪月份或周年纪念日予以加薪。大多数组织会使用更简单的加薪计算版本。
选项 1:在加薪月份予以加薪。公式为:
if(VersionMonth(this)>0 and ROW.Headcount>0 and VersionMonth(this)-VersionMonth(ROW.StartDate)>1 and ASSUM.RaiseMonth=fiscalmonth(this), ROW.PayRate[time=THIS-1]*ASSUM.RaisePct, 0
对单位薪资计算所做的变更包括以下几项:
语句 | 描述 |
|---|---|
ROW.Headcount>0
| 与之前一样, Headcount 需要大于零,而不是等于 1 。这样,即使拆分员工在特定行中的人员编制少于一个,该计算也适用于该拆分员工的所有行。 |
ASSUM.RaiseMonth=FiscalMonth(this)
| 该 RaiseMonth 与公司的会计月份进行比较。这样一来,员工在填写假设时可以根据公司的会计年度(而不是强制的日历年度)进行考量。 |
fiscalmonth(this) = fiscalmonth(ROW.StartDate)) or ASSUM. RaiseMonth = Month(this)
| 不存在 or 对账单中的周年纪念日。只在加薪月份予以加薪。 |
选项 2:在周年纪念日予以加薪。公式为:
if(VersionMonth(this)> 0 AND ROW.Headcount>0 AND VersionMonth(this)-VersionMonth(ROW.StartDate)> 1 AND FiscalMonth(this)=FiscalMonth(ROW.StartDate), ROW.PayRate[time=THIS-1]*ASSUM.RaisePct, 0)
有关其他单位薪资选项,请参见 公式示例 - 人员、单位薪资计算 。