预算关键应用点预算开发部胡伟杰bjhwj@ufida.com.cn62435553关键概念维度组合维度组合(维度向量)是预算中特有的一种概念,预算样表中有行/列/表头维度交叉成员的组合称为维度向量1、数据描述方式ABC1内容4月份5月份6月份2手机通讯费7007007003车辆补贴3000300030004房租补贴在NC预算系统里,虽然数据的展示形式也是一种表格,但是每个单元格都会有维度组合的属性。预算中使用维度组合而不是单元格坐标来描述数据,主要是考虑在表格应用时会存在一些缺陷,特别是不能进行数据的多维旋转、钻取等一些多维操作,而且基于单元格的应用,如果单元格发生变化往往需要重新定义取数公式,增加了维护工作量。因而在预算系统中引入了多维的概念,在进行数据存储的时候,主要依赖的是维度组合而不是单元格坐标。如图1-1-1中的B3单元格(对应表中的A2单元格),预算数据存储的时候将存储为:(主体=集团,业务方案=预算数,年维度=2009,指标=车辆补贴,币种=本币,月=4月)的值为700,而不是记录B3=700图1-1-1:预算中的表单图1-1-2:单元格的维度组合属性2、如何快速知道单元格维度组合在创建应用模型/样表(55前版本)的时候用户都需要指定模型上所包含的维度,其中有些维度是模型上预置的维度入预算主体、年维度、币种、业务方案(55以前为预算主体、周期方案、数值属性、币种),还有部分维度是根据用户需要添加的维度。图1-1-1中的B4单元格在后台将会按照(主体=集团,业务方案=预算数,年维度=2009,指标=车辆补贴,币种=本币,月=4月)的方式来描述(通过右键-扩展属性-维度来查看),也就是这个维度组合的作用和Excel中的单元格坐标是等价的,通过维度组合就能唯一的确定一个预算数据。那么如何才能快速的知道单元格的维度组合信息?如何根据维度组合快速定位到数据单元格?在预算里一个单元格的维度信息受三方面的维度作用:表头维度、行维度和列维度,多个维度交叉生成一个单元格的维度组合。我们看一个单元格的维度信息时如果知道行列及表头维度信息,通过多个维度成员组合就能知道一个单元格的维度信息。由于预算中的维度组合是唯一确定的,所以维度组合和单元格坐标一样是数据的关键属性,通过维度组合就能唯一确定一个数据,后续的维度公式应用时关键是需要了解维度组合的含义。3、维度组合重复(55前版本)在55版本维度组合是唯一的不会重复,但是在55以前的版本,数据描述方式和55不太一样,主要还是根据单元格来存储数据,因而维度组合是会重复的,那么如何来区分维度组合是否重复呢?下面将介绍下几种导致维度组合重复的表格设计方式表中重复使用同一个维度成员图1-1-3:重复使用同一指标/维度成员图1-1-3中的第三行和第四行使用的是同一指标,由于没有其它维度来区分不同的手机通讯费,所以必然第三行的维度组合和第四行的维度组合是重复的。如B3单元格可以描述为(月维度=4月,指标=手机通讯费),B4单元格维度组合描述也是(月维度=4月,指标=手机通讯费)<以上的描述省略了默认参数维维度的描述>,如果需要重复使用相同的维度成员,一定要多加一个辅助的维度用来区分,如可以采用如下的方式来处理:根据手机通讯费区分为管理费用和营业费用,系统中相应的增加一个维度定义:费用类别,在进行填充的时候使用填充下级功能,将指标填充为费用类别这个维度的下级。图1-1-4:如何重复使用同一维度成员由于增加了一个维度费用类别,这样两个手机通讯费的维度组合变为:C4(费用类别=管理费用,指标=手机通讯费,月维度=4月),C8(费用类别=营业费用,指标=手机通讯费,月维度=4月)提示:如果重复使用一个维度成员,必须增加一个辅助修饰的维度,而且必须是维度不能是自定义项,因为自定义项信息是不会在单元格的维度组合中体现的,如上例中的费用类别维度,如果把管理费用和营业费用作为自定义向而不是作为维度,照样还是会重复。表头多行/列使用自定义区图1-1-5:使用多个自定义区图1-1-5中的B列和C列,由于都是使用的是自定义区,在进行维度交叉的时候由于列维度上没有维度信息,B3、C3的维度组合都将描述为(手机=手机通讯费,月维度=空,)同一维度下的成员组合图1-1-6:同一维度下的成员组合图1-1-6和图1-1-4界面上看上去比较类似,但是图1-1-6中是存在维度组合重复的,如C3和C6中的维度组合都为(月维度=4月,指标=手机通讯费)?出现维度组合重复的原因是因为在1-1-6中营业费用和管理费用没有作为单独的维度定义,而都是作为指标成员了,而两个指标成员/同维度成员组合的话,在维度组合中只能体现一个指标成员(同一维度定义下的两个维度成员组合,原理相同),如C3单元格的维度组合见图1-1-7图1-1-7:单元格属性4、维度组合重复导致的问题及解决方式(55前版本)在502版本,如果样表中的维度组合重复,在使用维度公式(函数中以维度组合做参数的公式,如Cellsbydim_partial)取数时可能返回不是用户想要的数据;数据汇总时可能会出错;分析取数功过维度匹配来取数时取的数据可能不对。502版本的维度公式取数在502版本中有一些函数是基于维度组合来取数的,如Cellsbydim_partial()函数,里面的参数指定的就是维度串,维度串的作用就等同于单元格坐标。通过维度只显示后一个指标成员公式来取数的时候,如果表中的维度组合中存在重复的维度组合,函数就会从重复的维度组合中返回其中的一个,但是返回的数据并一定是用户想要的。有些维度组合重复导致的取数问题可能需要通过重新设计样表来解决,有的可以通过简单的方式来解决维度公式取数问题,下面将介绍一种可以简单解决的维度重复导致的维度公式取数问题,但是这种方法只是适用于只有两行/列维度向量重复的解决,如果存在多行/列重复,该方法无效。以1-1-5维度向量重复的方式为例,B3和C3的维度向量是重复的,某个表要通过维度公式取B3的数据,由于维度向量重复,通过维度公式取数时将返回B3或C3的数据。为了能正确地取到B3的数据,可以在样表上降B3单元格设置为全局主数据(使用这种方法时,要确保没有其它表通过维度公式取C3,否则该方法也无效),设置方式为:右键B3单元格-属性-类型,将全局主数据的标识打上,在通过属性下发到计划上。将单元格设置为全局主数据后,维度公式取数将优先返回标记为全局主数据的维度组合。图1-1-8:502上的单元格属性55版本维度组合问题55版本和502的区别在于55版本中维度向量是唯一的,也就是一个模型中相同的维度向量只能记录一个数据,而以前版本是维度向量+单元格的方式来记录数据,相同的维度向量可能会存在多个数据。示例:见如下两图标示模型上的两个表单图1-1-9:同一模型上的表单1图1-1-10:同一模型上的表单2在55版本同一模型上的一个维度组合只有一份数据,也就是不管这个维度组合在哪个表单上,只会有一个数据。如图1-1-9和图1-1-10分别是同一模型上的两个表单,以C4单元格为例,其维度组合为(费用类别=管理费用,指标=收集通讯费,月维度=1月),虽然分布在两个表单中,但是系统根据维度组合只保留一份数据,也就是不管在哪个表单中修改数据,另一个表单中相同维度组合的数据将自动变化。5、55中多维数据和非多维数据55中表单上的数据单元分为多维数据和非多维数据,多维数据是有维度组合信息的,而非多维数据是根据单元格来记录数据的,和维度组合无关,非多维数据将无法进行多维分析和维度公式取数,但是能通过单元格公式进行取数。在创建表单的时候,如果是需要进行多维分析的数据和控制的数据最好都能生成多维数据(选择数据单元格—右键—选择生成数据),生成数据后将在后台生成各个单元格的维度组合。模型和表单模型是数据的边界,模型决定了维度和维度组合,也就是模型是一个数据的集合。从业务上来说用户的具有相同业务含义的表归为一个应用模型,或是具有相同维度组合的表归为一个业务模型,最偷懒的方式可能就是一个样表一个模型,考虑多个样表是否作为一个模型时,还需要考虑表的使用者是否相同,如果两个表不同人编制,最好还是分开做模型。预算表单是数据的展现,预算表单不决定数据,也就是表单上的数据(维度组合)和表单没有关系,只由应用模型决定,不同表单上相同的维度组合是同一份数据。汇总结构汇总结构在56版本中主要在场景中会有应用,在预算汇总的时候只能选择汇总结构对应的预算主体来进行汇总。维度视图维度视图是维度成员的布局方式,在不同的维度视图中维度成员可以有不同的树形结构,一个维度定义可以定义多个维度视图。一般在需要按照不同的结构来进行汇总时,需要通过维度视图创建不同的汇总路径,视图的应用详见维度管理-静态视图部分维度管理UAP导入可以将UAP的档案导入到预算作为预算维度,在导入UAP档案的时候如果要在预算中按照该档案来进行控制,有几个档案需要导入辅助核算而不是基本档案,如如项目辅助核算、客商辅助核算、客户辅助核算、供应商辅助核算,如果导入基本档案,在进行预算控制的时候就没办法控制!CSV导入502和55都提供了CSV导入维度成员功能,下面通过一个案例介绍下CSV导入功能的应用,通过CSV导入功能可以在系统外比较快速的定义好维度成员然后导入系统(CSV文件可以通过另存Excel文件的方式来生成)案例如下的指标成员,需要在CSV文件中创建并导入系统操作步骤:1、先从系统中导出一个CSV文件,或是手工创建一个系统要求的指定格式的文件导出:用于导入的CSV文件的格式如下:主键编码名称别名上级主键主键:如果是最末级的维度成员,可以为空,中间级的成员最好能录入且别重复,因为需要通过这个主键来区分维度成员的上下级,主键字符可以随便录入编码、名称:维度成员对应的编码、名称,必输;别名:对应维度成员的别名,可以为空;上级主键:用于指定当前维度成员的上级成员,当前成员的上级主键=其直接上级的主键(这也就是为何中间级的成员必需录入主键的原因)2、实现上面成员结构的CSV文件,大家主要是了解下主键和上级主键的应用即可,其它的操作都比较简单,如“月租费”的上级是“基础语音通信业务”,那么对应的“月租费”的上级主键就是“基础语音业务”的主键1主键编码名称别名上级主键1test00601基础语音业务test0060101月租费1test0060102本地区内通信费1test0060103本地区间通信费1test0060104本地区拨号上网通信费1维度成员应用范围55版本在预算维度上增加了几个基本属性:创建系统、创建主体、应用范围和可用系统,创建系统用于标识该维度是在全面预算中创建的还是在费用预算中创建的,创建系统默认值为表头选择的当前系统值,该值不可更改创建主体用于标识维度的创建主体,默认值为表头上的当前主体值应用范围用于指定维度可以在哪些主体来使用应用范围可选值为本级、本级级直接下级、本级及所有下级、全局共享设置为本级,那么只有创建主体可以查看到该成员如果设置为本级及直接下级,在创建主体及创建主体的直接下级可以查看如果设置为本纪及所有下级,在创建主体其创建主体的所有下级都可以查看应用系统用于标识所创建的指标/维度是在全面预算中可用还是在费用预算中可用应用范围应用一例维度计算属性的应用计算属性是v55版本新增加的功能,用户可以定义各个维度成员的计算属性,通过计算属性来表示维度成员间的计算关系,目前计算属性可以设置为+,-,*,/。下面以下面指标的计算属性来说明计算属性的应用及该功能在产品的哪些功能点能够使用。,计算属性都是。目前计算属性设置完后,只能在维度公式里面能使用到计算属性,能够功过维度成员的计算属性生成相应的维度公式。如要要表示基础语音业务和下级指标成员的计算关系就可以通过计算属性来表示。定义这个Dimsum函数将会根据单前所指定的维度成员的直接下级成员的计算属性来生成维度公式,由于基础语音业务的下级指标成员的计算属性都是+,所以这个例子中的应用等同于Sumfind函数,就是下级成员的合计。假如上面例子中“本地区内通信费”的计算属性为“-”,那么上面的函数将生成这样的规则:基础语音业务=月租费-本地区内通信费+本地区间通信费+本地拨号上网通信费;也就是Dimsum函数将会根据不同计算属性生成相应的计算公式。维度属性和动态视图维度属性是55版本新增加自定义属性功能,用户可以增加维度的自定义属性,通过自定义属性实现数据的分类汇总。应用案例7:预算主体有地区属性,地区同时又是一个预算维度,预算数据需要根据不同的地区来实现数据的分类汇总。实现步骤:假设系统中已经建立了预算主体成员和地区维成员,成员结构如下:步骤1:为了要实现按照主体的地区属性汇总,需要先定义预算主体的地区属性,属性名称手工录入,属性类型选择系统中定义的“地区维”。步骤2:为预算主体建立一个视图类型为动态视图的主体视图步骤3:增加主体视图的成员,动态视图成员的过滤条件是名称=所要汇总的地区维成员(需要手工录入)步骤4:设计要按地区进行数据汇总的预算表单,格式如下:步骤5:定义汇总取数的维度公式,公式左边不再介绍,可以参看前面的案例,主要关注下等号右边和其它公式不同的地方,看下等号右边Blcok的维度属性,主要关注主体维的变化情况,默认主体维的值是[默认值],因为需要汇总华东区主体的数据,所以需要修改主体维成员,将主体维选择的参照,选择要汇总的区域如华东区,确定就可以完成公式定义了,:这种类型公式定义要注意的是不同的区域如华东区和华南区公式不能统一定义,不同的区域需要单独定义。应用模型设计模型还是表单模型是针对某个特定应用而创建的数据集合,应用模型决定了数据(在产品使用时,如果创建的事自定义格式的表单,会有个生成数据的操作,生成数据主要是用于生成模型上的数据,这个动作会根据单元格的维度组合在数据库中生成数据)模型上记录了数据,模型可以说是一个数据池模型上定义规则(维度公式、控制方案)模型上指定流程表单是模型上数据的展现视图,根据需要相同的数据可以定义不同的展现视图表单和数据无关(把表单删除数据还是存在)表单只是一种展现方式和数据无关维度公式、控制方案等模型上的规则和表单无关表单公式和表单相关,表单删除后公式也删除计划是模型上实例化参数维成员后生成的数据对象,计划是预算数据操作的基本载体计划是目前预算/审批编制的最小单位计划是预算状态记录的载体(数据状态都记录在计划上)做模型还是做表单需要考虑的问题不同样表间的数据相关性,如用户的样表一个是明细表一个是汇总表关注这里,这个就是在主体维上定义的动态视图及动态视图成员,如华东区表示将返回“主体.地区=华东的预算主体”不同的表表如果存在较多相同的维度组合,可以减少公式的设置如果不同表维度差异较大,考虑使用不同的模型样表的编制人、审批人是否相同,特别是审批/批复人不同时,需要考虑作为不同的表单如过样表对应的编制人审批人不同,建议分为不同模型设置做模型和表单使用方式不太一样,需要考虑喜欢哪种操作方式效率问题:不建议一个模型上设置太多的表单,模型数据量过大影响使用效率模型中增加冗余维度大多数情况下,设计模型上需要多少个维度,我们只需要关注实现样表需要多少个维度即可,但是有的时候在设计模型维度的时候,我们需要考虑一些应用上需要增加更多的维度来实现用户的需求。如用户希望在分析的时候能够按区域汇总预算数据、能够进行多版本数据的比较分析(实现方式仅限于55/56版本,在以后版本多版本分析时将会比较简便)等,面对这些应用,考虑实现方案的时候,可以考虑在模型中增加冗余的维度,用来记录相关的区域汇总数或是多版本数据。如果不在编制模型中增加冗余维度,可以考虑通过分析模型来实现这种需求。如下的用户编制预算表,从编制的角度来看,设计模型很简单但是在用户分析数据的时候,希望能够按地区来汇总数据,而地区并不是预算主体,在这种情况下,设计编制模型的时候就需要考虑是否需要增加冗余的维度,因为在分析查询那里,没有办法动态的按地区汇总数据。该需要的实现方案地区维在设计编制模型的时候增加冗余的地区维设计多个表单:编制表单和地区汇总表单,编制表单用于用户正常的编制,汇总表单用于生成地区的汇总数据编制表单:地区汇总表单:这个表单可能只需要上级主体使用,通过公式来计算各个地区的汇总数,这样在编制的时候就能在编制模型上保存各地区的汇总数据说明:该例子主要是为了说明在设计应用模型的时候,需要考虑下分析的应用,如果分析的时候需要生成新的数据(如上面例子的<地区+主营业务收入>),如果在编制模型中不存在这样的维度组合,那么分析的时候就得使用分析模型,通过分析模型来生成新的维度组合。由于分析模型在分析查询使用时灵活性不如编制模型,所以我在做方案的时地区维候,是在编制模型上增加了冗余的地区维度,来生成分析所要的维度组合,这样分析的时候就比较简单,而且编制的时候也不需要去维护地区汇总的表单,因为这个表单纯粹是为了生成维度组合用的,在编制公式计算的时候就会计算上面的地区汇总公式。以后遇到类似的分析时候需要考虑新生成维度组合的应用可以参考上面的例子。维度公式应用维度公式基础对如下的表要设置公式,我们先认识下维度公式中Block的含义,后面的这个东西我们成为一个Block。这是完成的公式,其中等号左边的Block决定了哪些单元格上设置公式,等号右边表示的是要取数的单元格。维度公式设置后的效果,现在选中的是等号左边的Find函数,右边对应的显示Block对应的维度信息,由于大多数情况下参数维信息不用考虑,我们先暂时忽略参数维信息(主体、币种、业务方案、版本和年维度)。下面的截图是我选择“1月份的职工薪酬”(C3单元格)时的维度信息上面图右边显示的维度信息其实和单元格扩展属性-维度中的内容一样的,如C3单元格维度信息如下(不考虑参数维):等号左边1-3月份如何在公式中体现呢?我们看下表中的第三行“职工薪酬”1-3月份单元格维度,维度属性中“指标=职工薪酬”在三个月里面都是一样的,不同的只是月份不一样,所以在维度公式中可以用如下方式表示职工薪酬1-3月份看到右边的维度组合信息如何定位到样表上的单元格呢?如上图,由于指标是没变的,所以只需要选择月维度成员将1月份改为1、2、3月份,上面标示的就是职工薪酬1-3月份三个单元格了。维度公式在分配的时候,是根据等号左边的维度组合来进行公示分配(等号左边表示的是要设置公式的单元格),如上面维度公式中指定了(指标=职工薪酬,月=1、2、3月),对应到模型中具体的单元格就是(指标=职工薪酬,月=1月)、(指标=职工薪酬,月=2月)和(指标=职工薪酬,月=3月)三个单元个,是一个笛卡尔乘积的关系。所有月份都相同的公式如何设置?上面例子中月维度是指定的具体值,但是很多时候1-12月都会有相同的取数规则,如果指定12个月,选择比较麻烦,大家在维度选择框中可以看到有个“全部”的选项,通过这个选项可以表示所有的维度成员,指定为全部有个好处,以后增加维度成员如果有相同的规则,不用再修改公式,自动继承(全部和全部非空区别在于当月维度=空值是否有同的规则,月维度为空的单元格就是列维度上没有月维度的单元格,可以通过扩展属性—维度查看)等号右边如何修改呢?1月份的时候的合计,用户想要的结果是职工薪酬=工资+职工福利+社会保险用户想要达到的效果是1月份取对应的1月份“工资+职工福利+社会保险”的合计,2月份取对应的2月份“工资+职工福利+社会保险”的合计,由于左边改为全部,等号右边需要相应的改为“默认”,默认的含义是根据等号右边的单元格的月维度自动匹配,在1月份的单元格,默认替换为1月,2月份单元格默认替换为2月。等号左边月维度该为全部的话,右边该如何修改?维度公式的分配过程下图是模型上定义的维度公式,在计划创建后,每次打开(切换/编制)计划都会进行维度公式分配哪些计划上会有公式?(以主体和年维度为例)等号左边Block的参数维成员选择决定了哪些计划上会有维度公式,如上面公式中主体选择全部,表示所有主体都执行该公式,如果主体指定了具体的成员,则只有公式中指定的主体会使用公式根据参数维确定计划后,再根据等号左边Block上的普通维度将公式分配到单元格上如上面公式中的维度组合(指标=职工薪酬,月维度=全部非空),在分配的时候会拆为单元格(指标=职工薪酬,月维度=1月)、(指标=职工薪酬,月维度=2月)、(指标=职工薪酬,月维度=3月)三个单元格,这三个单元格将显示为黄色每个单元格上生成具体的公式公式内容(取数规则)是由等号右边决定的,在模型上的公式描述为“工资+职工福利+社会保险”,其中会把默认值替换为具体的值如在(指标=职工薪酬,月维度=1月),公式就解释为(1月份的“工资+职工福利+社会保险)(指标=职工薪酬,月维度=2月)单元格上的公式就解释为(2月份<公式上的默认值>的“工资+职工福利+社会保险),在公式分配实例化的时候将一些公式上定义的默认、直接下级等宏变量替换为具体的维度成员值Find函数维度公式是v55中新增加的功能,公式很灵活,和以前版本公式区别也很大。以前版本的公式都是基于单元格的描述,而维度公式更多的是基于规则的描述,如案例1中的基础语音业务为例,用单元格描述就是C4单元格==SUM(C5:C8),如果改用规则描述就是基础语音业务=其直接下级的合计。在将用户的Excel表格公式转换为维度公式前,需要先能够讲按单元格描述的公式转换为规则,这样在定义维度公式的时候将会大大减少公式量,只要是相同描述的规则都可以通过一个维度公式来实现,如固定电话业务和基础语音业务规则是一样的即:都是直接下级的数据合计;这样通过一个维度公式既可以实现。Find函数主要用于返回参数中所指定的单元格数据,Find函数只能返回单值,类似于EXcel中的Cell函数应用案例1:如下样表,在所有的预算主体、及所有预算年度使用相同的公式收入类型预算年度·业务收入净额发生进度B合计C1月D2月E3月F4月G5月H6月3、固定电话业务-=C4+C9=D4+D9-=E4+E9-F4+F9-G4+G9H4+H94、基础语音业务-=SUM(C5:C8)=SUM(D5:D8)=SUM(E5:E8)=SUM(F5:F8)=SUM(G5:G8)=SUM(H5:H8)5、月租费-6、本地区内通信费-7、本地区间通信费-8、本地拨号上网通信费-9、增值业务收入-实现方式:设置C4单元格的公式:设置单个单元格公式的时候只要选择Find函数,然后双击需要进行公式运算的单元格就好了,界面如上图所示;公式表达式如下:,表达式中的每一个代表了一个或是多个单元格信息,点击Block相应的在右边的属性框中将显示该Block对应的单元格属性:,将该属性描述为文本的形式就是(主体=全部,指标=固定电话业务,业务方案=预算数,币种=全部,版本=全部,年维度=全部,月维度=1月),这个就是前面介绍的维度组合,等号左边Block的维度组合决定了需要在哪些单元格上设置公式,如上例中的C4单元格,其维度组合就是(主体=全部,指标=固定电话业务,业务方案=预算数,币种=全部,版本=全部,年维度=全部,月维度=1月)<参数维需要在计划上才实例化,所以在模型上显示的成员是全部,如主体=全部表示所有主体都使用该公式>,在表单上定义公式的时候可以不看参数维信息,如上例中只是在单元格(指标=固定电话业务,月维度=1月)上设置公式。等号右边的信息描述的是一个计算规则,如上例中的单元格C3=C4+C9的公式用维度描述的方式如下:(固定电话业务,1月)=(基础语音业务,1月)+(增值业务收入,1月),等号右边Block及维度信息为:,维度信息为:,和等号左边的区别在于(以主体为例),等号左边的主体是全部,等号右边的的主体为默认值,默认值什么意思呢?表示等号右边维度组合中的主体默认取等号左边的主体值,如在集团主体的计划中主体=集团,那么等号右边的主体也取集团;刚才设置的是单元格C3上的函数,D3-H3单元格的取数规则是类似的,如何快速设置其它单元格公式呢?大家可以看下c3-H3单元格维度组合的差异,主要是月维度的取值不一样,其它维度取值是一样的,如C3单元格月维度=1月,D3单元格月维度=2月,发现这个规律后在定义公式的时候可以通过如下方式快速实现C3-H3单元格公式的定义首先等号左边的block的维度信息改为,主要改动是将月维度改为全部,表示所有月都需要定一个这个公式,等号右边的Block的维度信息需要做相应的修改维度信息修改为,将月维度改为默认值,表示月维度取值默认取公式等号左边的月维度值,维度组合的描述方式为:(固定电话业务,月=全部)=(基础语音业务,月=默认)+(增值业务收入,月=默认)为主体/各预算年度设置个性化的公式:应用案例2上面介绍的是所有主体或预算年度使用相同的计算公式,但是相同的样表也可能存在在不同的主体或是预算年度需要设置不一样的计算规则,这样在维度公式应用的时候和上面的统一的公式有所区别,下面以不同主体设置公式为例来介绍维度公式应用的差别。场景:假设除了北京分公司外,所有的预算主体都采用上例中的维度公式,且系统中已经存在上例中的维度公式,主体北京的公式描述如下:收入类型预算年度·业务收入净额发生进度B合计C1月D2月E3月F4月G5月H6月3、固定电话业务-=C4=D4-=E4F4G4H44、基础语音业务-=SUM(C5:C8)=SUM(D5:D8)=SUM(E5:E8)=SUM(F5:F8)=SUM(G5:G8)=SUM(H5:H8)5、月租费-6、本地区内通信费-7、本地区间通信费-8、本地拨号上网通信费-9、增值业务收入-方案实现:按照单元格的方式先定义好公式,如上图,默认情况下等号左边Block的维度信息为,大家看到默认主体为全部,这样的话所有的主体都会使用该公式,由于上面介绍了只有主体=北京时需要使用这个公式,所以需要将主体改为北京分公司,修改后的维度属性为,这样修改后就只有北京分公司可以匹配到这个公式了。由于同时存在两个公式(共性的公式和北京分公司个性的公式,)为了确保北京分公司能够匹配到公式,除了上述的设置外,还需要在公式列表界面修改公式的优先级,公式列表界面如下,通过右键修改公式得优先级:维度公式和灵活但相对的也比较抽象,我觉得关键是要了解维度组合的含义及能够比较快的通过单元格知道单元格对应的维度组合或是通过给出的维度组合信息定位到相对应的单元格。如,这样的维度组合,我们就该知道是固定电话那一行的1-12月所对应的单元格,如果在等号左边,表示对哪些单元格设置公式,如果在等号右边,表示的是取哪些单元格的数据。通过修改指定维度的不同成员,实现不同单元格公式的定义。Smfind函数Smfind函数返回指定维度组合的合计值,类似于Excel中的Sum函数,SumFind函数的应用大体和Find函数类似,相同部分不再重复描述,Sumfind函数主要介绍下一些宏变量的应用。在55中宏变量是作为一种特殊的成员,在维度公式定义参照维度成员界面的最下面将显示维度中所能使用的一些宏变量。应用案例3:宏变量“直接下级”的使用收入类型预算年度·业务收入净额发生进度B合计C1月D2月E3月F4月G5月H6月3、固定电话业务-=C4+C9=D4+D9-=E4+E9-F4+F9-G4+G9H4+H94、基础语音业务-=SUM(C5:C8)=SUM(D5:D8)=SUM(E5:E8)=SUM(F5:F8)=SUM(G5:G8)=SUM(H5:H8)5、月租费-6、本地区内通信费-7、本地区间通信费-8、本地拨号上网通信费-9、增值业务收入-基础语音业务、月租费、本地通信费、本地区建通信费和本地拨号上网费为预算指标,且其定义的指标结构如下:第四行行公式可以描述为基础语音业务=其下级指标成员的合计,因而在维度公式实现的时候可以采用如下的方式来实现,这种合计公式我们可以是用两种方式来实现,方式1:在合计函数中指定需要进行合计的维度成员,如下图,在指标中指定需要进行合计的指标成员(点开指标参照将看到基础语音业务的下级指标都打上勾)方式2:使用宏变量,使用宏变量后等号右边Block的信息如下,使用宏变量的好处就是在基础语音业务增加下增加下级指标成员后,公式不需要做任何变动。从第一种设置方法到第二种设置方法的修改操作:点开指标右边的参照,将已经够选的指标成员取消掉,然后拖动滚动条到参照界面的最下面,选择“直接下级”即可。在学习时用了宏变量后,大家思考下第三行的公式C3=C4+C9是否可以使用和第四行一样的公式?答案是肯定的,因为基础语音业务和增值业务收入都是固定电话业务的下级,第三行和第四行的公式都可以统一描述为:当前指标=SUM(直接下级成员),公式如下:,Block的维度组合信息分别为等号左边Block:等号右边的Block:应用案例4:时间维宏变量的使用:下表中的1,2季度的数据=各季度下的月份数据的合计,假设样表中的季度使用的是季维度收入类型预算年度·业务收入净额发生进度1季度合计C1月D2月E3月2季度F4月G5月H6月3、固定电话业务=SUM(1,2,3月)-=C4+C9=D4+D9-=E4+E9-=SUM(4,5,6月)G4+G9-H4+H9I4+I94、基础语音业务-------5、月租费-6、本地区内通信费-7、本地区间通信费-8、本地拨号上网通信费-9、增值业务收入-默认设置情况下,公式如下:,如果想要变成一个2个季度都通用的公式,需要将具体指定的月度成员使用宏变量来替换,需要使用时间维下的“当前季度的所有月份”,这样公式分配的时候,1季度执行的是1-2-3月份的合计,2季度执行的是4-5-6月份的合计。Ufind函数Ufind同以前版本公式模板实现的功能,返回指定参数条件的执行数,但在公式模板基础上作了改进,可以指定基本档案成员,还可以支持多个Ufind函数进行四则运算。Ufind函数应用举例:应用案例5:根据维度组合的对应关系取数和UAP档案的对应关系,其它几个指标的对应关系类似,也是和会计科目做对应,样表格式见案例4中的样表,基础语音业务行对应的执行数取数公式如下:用户双击Ufind函数的时候,将自动带出和单元格上维度有对应关系的档案(如指标对英会计科目、主体对应公司目录,所以在基本档案上自动显示科目和公司,由于所选择的单元格上没有具体的主体值,所以公司成员为空值,单元格上有具体的指标值,因而科目自动取指标对应的会计科目)在上面的公式中公式主键为空表示什么意思呢?在Ufind公式中,如果某个指定的档案为空,那么在计划中公式执行的时候,为空的档案将取计划单元格上维度所对应的基本档案的值,前面公司主键为空将取预算主体对应的公司的值,如在北京主体(北京主体对应北京公司),将取北京公司的执行数,如果在上海主体(上海主体对应上海公司),将取上海分公司的执行数。所以如果想要公式有通用性,可以指定某个档案为空值,如上例中所有指标都要设置这样的取执行数公式,在等号左边的Block中将指标选择全部,然后在Ufind函数中科目主键就不指定具体的成员,改为空值。这样所有的指标就可以采用相同的取数规则了。Ufind函数的其它参数意义控制系统:表示要从哪个业务系统取数,目前支持总帐和财务单独、固定资产的新增资产申请单单据类型:在取财务单据的时候需要指定取数的单据类型,可以多选方向:取数的方向,借方还是贷方,从总账取数才有意义属性:取金额还是取数量,总帐取数才有意义,其它系统为空会计主体:大多数情况下不用选择,系统会去公司默认的会计主体取数累计:是否按时间进行累计包含为生效:是否取未生效的数据起始日期和结束日期:要取数单据的起始日期和结束日期,大多数情况下不用选择,会根据计划单元格上的日期自动取日期类型:在取财务单据数据时,可以指定是按审核日期取数还是按保存日期取数增删行用户来指定所要取数的档案成员包含下级的选项:目前只有部门档案和会计科目可以包含下级取数,选择该选项后取的执行数将包含下级档案成员的数据。公司主键为空表示什么意思呢?应用案例6:根据指定的基本档案成员取数,取数的档案不在单元格维度中上面的案例中,我们指定预算中的指标维度是和UAP档案都有对应的,在以前版本也是预算指标/维度和UAP档案有对应关系才可以是用公式模板的。在v55中做了改进,即使预算指标/维度和UAP档案没有对应关系,用户也可以使用Ufind函数进行公式取数。取数方式就是用户自己指定要取数的UAP档案的组合。如果Ufind函数中没有指定具体的档案成员,将根据指标/维度和UAP档案的对应关系进行取数,在进行档案对管理档案的都需要导入管理档案,如项目管理档案、客商辅助核算业务函数应用案例7:使用业务函数从财务系统取执行数,样表格式如下,其中A列为预算指标(指标编码为015),指标对应UAP中的会计科目;B列为部门维度(部门维度的编码为902),部门维度对应UAP中的部门档案;列维度为时间维。设置方式:Find函数的选取见Find函数部分,改部分只介绍业务函数相关的部分。(业务函数只能登录到公司才可以设置,在使用业务函书前需要在集团将tbadmin用户关联到要设置和执行业务函书的公司的角色上)第一步:对单元格C4设置UFO函数,双击函数列表上的UFO函数,弹出选择UFO函数的界面,选择GLFS函数,C4单元格对应的维度信息为第二步:选择函数参数设置完UFO业务函数后,点击UFO函数Block,右边列表上显示相应的UFO函数参数的信息:上面是对C4单元格设置,如果对于其它单元格都设置类似的取数公式该如何设置的?在Find函数部分,介绍了如何将函数应用到全部单元格,如按如下方式设置,表示所有的含指标单元格、所有月度、所有部门的单元格都将设置业务函数,界面如下:那么UFO函数如何做相应的改进呢?和以前版本一样,需要将一些相关的参数使用宏公司来进行替换,宏公式在执行的时候将根据单元格对应的维度信息来进行替换...