跳至主要内容
Adaptive Planning
上次更新时间 :2023-06-23
示例:创建单位薪资公式

示例:创建单位薪资公式

为简单起见,以下示例使用英文逗号分隔符分隔不同的项。某些浏览器设置要求您使用英文分号分隔符。
在此示例中,单位薪资公式引用了在“加薪月份”
假设和“加薪百分比”
假设中输入的值。
关于单位薪资计算需要了解的一些事项:
  • “单位薪资”列是一个初始余额(累计)元素,按每月差额输入计划值,这表示计划方输入的数据随后将结转至该版本中的所有期间。您对该元素进行的计算将加到账户上个月的余额中。
  • 中 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]
,而不是当前期间。原因如下:
  • PayRate
    计算是初始余额元素。将结转计划方在列中输入的余额(加上上个月的值)。如果该初始余额元素中存在类似于此处描述的公式,则该公式会加上上个月的值。
  • 因为初始余额元素会自动结转余额,并将任何新计算与该余额相加,所以也会包括当前月份正在计算的所有值。因此,为了避免出现任何循环引用,加薪将基于上个月的单位薪资余额。
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)
有关其他单位薪资选项,请参见 公式示例 - 人员、单位薪资计算