SAC Planning 高级计算公式-2

计算规则

基于事实表数据集

如果你不做其他的限定,下面的这个公式就是计算A产品的revenue,用Price*Quantity。但是你这里都没管时间。

复制代码
MEMBERSET [d/Product] ="A"
DATA([d/Account] ="Revenue")=RESULTLOOKUP([d/Account]="Price") * RESULTLOOKUP([d/Account]="Quantity")

如果我要计算下面这个公司2018年四季度的所有收入。那用高级公式可以这么弄。

Account Product Entity Date Value
Price Sparkling Water * Oct.2018 500
Price Sparkling Water * Nov.2018 600
Price Sparkling Water * Dec.2018 700
Quantity Sparkling Water Germany Oct.2018 50
Quantity Sparkling Water Germany Nov.2018 70
Quantity Sparkling Water Germany Dec.2018 90
Quantity Sparkling Water France Oct.2018 30
Quantity Sparkling Water France Nov.2018 50
Quantity Sparkling Water France Dec.2018 80
复制代码
MEMBERSET [d/Date]=("201810","201811","201812")

DATA([d/Account] ="Revenue")=RESULTLOOKUP([d/Account] ="Price",[d/Entity]="*") * RESULTLOOKUP([d/Account]="Quantity")

这里面的第一个RESULTLOOKUP去找它的范围了:

Account Product Entity Date Value
Price Sparkling Water * Oct.2018 500
Price Sparkling Water * Nov.2018 600
Price Sparkling Water * Dec.2018 700

第二个RESULTLOOKUP也去找它的范围了:

Account Product Entity Date Value
Quantity Sparkling Water Germany Oct.2018 50
Quantity Sparkling Water Germany Nov.2018 70
Quantity Sparkling Water Germany Dec.2018 90
Quantity Sparkling Water France Oct.2018 30
Quantity Sparkling Water France Nov.2018 50
Quantity Sparkling Water France Dec.2018 80

然后去做乘法,是怎么样的呢?

Account Account Product Entity Date Value (Price) Value (Quantity) Result
Price Quantity Sparkling Water Germany Oct.2018 500 50 25000
Price Quantity Sparkling Water Germany Nov.2018 600 70 42000
Price Quantity Sparkling Water Germany Dec.2018 700 90 63000
Price Quantity Sparkling Water France Oct.2018 500 30 15000
Price Quantity Sparkling Water France Nov.2018 600 50 30000
Price Quantity Sparkling Water France Dec.2018 700 80 56000

在最后的DATA()里返回值就会是这样的计算值。

Account Product Entity Date Value
Revenue Sparkling Water Germany Oct.2018 25000
Revenue Sparkling Water Germany Nov.2018 42000
Revenue Sparkling Water Germany Dec.2018 63000
Revenue Sparkling Water France Oct.2018 15000
Revenue Sparkling Water France Nov.2018 30000
Revenue Sparkling Water France Dec.2018 56000

新建数据

复制代码
MEMBERSET [d/Date]=BASEMEMBER([d/Date]. [h/YQM],"2018")

DATA([d/Audit]="LogicCalc")=RESULTLOOKUP([d/Audit]="Input",[d/Date]=PREVIOUS(12))

当我想新生成数据,比如上面把Audit = Input的从2017年1-12月的数据重新复制到Audit = LogicCalc的所有维度下,复制到2018年。

如果2017年只有半年有数据,那2018年的7-12月份也不会被填充,这时候就要去把CONFIG.GENERATE_UNBOOKED_DATA 设置成ON

符号反转

SAC计划中有四种财务账户类型:AST资产LEQ负债INC收入EXP费用

每一种账户类型都有一个预定义的符号。

不过高级公式默认是用绝对值计算的。

复制代码
DATA([d/Account] ="Revenue")=RESULTLOOKUP([d/Account]="Income") + RESULTLOOKUP([d/Account]="Expense")

比如INCOME是100,EXPENSE是50,结果会显示150.

如果你想用S4里设置好的EXP类型是负号。那你就把CONFIG.FLIPPING_SIGN_ACCORDING_ACCTYPE 设置成ON 。

复制代码
CONFIG.FLIPPING_SIGN_ACCORDING_ACCTYPE=ON

DATA([d/Account] ="Revenue")=RESULTLOOKUP([d/Account]="Income") + RESULTLOOKUP([d/Account]="Expense")

使用维度的属性值限定维度值

在MEMEBERSET里直接限定维度的值。

复制代码
MEMBERSET [d/Entity].[p/Region]="Europe"

这个比较简单,是限定所有属性里有Europe的Entity是哪些。

维度属性值定义计算

这个下面的就比较有意思了。

可以用维度的属性来定义计算范围。

举例,你有一个特定的维度,它带了一个计算属性还有一个上级分组属性。

Entity Calculation SisterMember
Sales Europe Y Sales Total
Sales Asia Y Sales Total
Sales Allowance Y Sales Cost Total
Sales Rebate Y Sales Cost Total
Sales Total
Sales Cost Total

代码是这么写:

复制代码
MEMBERSET [d/Entity].[p/Calculation] ="Y"

DATA() = RESULTLOOKUP([d/Sales] = [d/Sales].[p/SisterMember] )

MEMBERSET的返回值是"Sales Europe", "Sales Asia", "Sales Allowance", "Sales Rebate",先把4个calculation是Y的成员选出来。

下一行是为前面MEMBERSET选中的成员,设置他们的DATA值等于他们各自的sistermember的DATA值。RESULTLOOKUP来找对应的sistermember的结果。所以最后会是"Sales Europe", "Sales Asia"的值被填充成Sales Total的值, "Sales Allowance", "Sales Rebate"的值被填充成Sales Cost Total的值。

最终结果显示为:

相关推荐
心疼你的一切11 小时前
昇腾CANN实战落地:从智慧城市到AIGC,解锁五大行业AI应用的算力密码
数据仓库·人工智能·深度学习·aigc·智慧城市·cann
心疼你的一切16 小时前
基于CANN仓库打造轻量级AIGC:一键生成图片语义描述
数据仓库·aigc·cann
AC赳赳老秦20 小时前
代码生成超越 GPT-4:DeepSeek-V4 编程任务实战与 2026 开发者效率提升指南
数据库·数据仓库·人工智能·科技·rabbitmq·memcache·deepseek
心疼你的一切21 小时前
拆解 CANN 仓库:实现 AIGC 文本生成昇腾端部署
数据仓库·深度学习·aigc·cann
心疼你的一切21 小时前
模态交响:CANN驱动的跨模态AIGC统一架构
数据仓库·深度学习·架构·aigc·cann
心疼你的一切1 天前
解锁CANN仓库核心能力:从零搭建AIGC轻量文本生成实战(附代码+流程图)
数据仓库·深度学习·aigc·流程图·cann
秃了也弱了。1 天前
StarRocks:高性能分析型数据仓库
数据仓库
心疼你的一切1 天前
数字智人:CANN加速的实时数字人生成与交互
数据仓库·深度学习·aigc·交互·cann
心疼你的一切1 天前
语音革命:CANN驱动实时语音合成的技术突破
数据仓库·开源·aigc·cann
心疼你的一切1 天前
解构CANN仓库:AIGC API从底层逻辑到实战落地,解锁国产化AI生成算力
数据仓库·人工智能·深度学习·aigc·cann