zoukankan      html  css  js  c++  java
  • POWER PIVOT 进阶篇

    一、时间智能

    1.1 日历表要求

    • 向模型中指定一张日历表
    • 包含至少一列是日期格式,且包含需要计算的日期
    • 周、月份、年份可自由添加
    • 日期列不能重复,但可以不连续,如果最小单位为月,可以只设置每月1号

    标记为日期表

    1.2常用时间计算指标

    缩写 英文 解释
    YTD Year To Date 年初至今的累积
    QTD Quarter  To Date    季度初至今的累积
    MTD Month To Date     月初至今的累积
    YOY Year On Year    同比去年
    MOM Month On Month          环比上月

     

     

     

     

     

     

      

    1.3常用时间智能函数

    函数 说明 类似函数
    TOTALYTD 年累积 DATESYTD
    TOTALQTD 季度累积 DATESQTD
    TOTAMTD 月累积 DATESMTD
    DATEADD 日期推移 SAMEPERIODLASTYEAR
    PARALLELPERIOD     某一区间的总数    

    求同环比常与calculate搭配使用

    二、链接回表

    2.1 创建链接回表

    2.2 Summarize

    Summarize(表格,汇总列1,..."名称1",表达式1)

    数据汇总功能,相当于生成一张透视表,就是SQL中的group by

    SELECT  C1(汇总列1),C2(汇总列2),sum(C3)(表达式1) AS 'N1'(名称1),COUNT(C4)(表达式2)as 'N2'(名称2)

    FROM T1(表格) 

    2.3Generate

    generate(T1,T2)

    生成笛卡尔积表

     

    三、高级DAX函数

    3.1高级聚合函数

    函数 说明
    SUMX 求和
    AVERAGEX 求平均值
    MAXX 求最大值
    MINX 求最小值
    COUNTX 数值格式的计数
    COUNTAX 所有格式的计数
    MEDIENX 求中位数
    RANKX 排名

    SUMX(Table,expression)

    sumx(t1,单价*数量):表格t1中求销售额(单价*数量),销售额=单价1*数量1+...+单价n*数量n

    3.2常用筛选器函数

    函数 说明
    FILTER 按条件筛选数据
    VALUES 返回列或者表去重后的结果
    TOPN 返回前几名的数据
    ALL 所有数据
    ALLEXCEPT 所有数据除了
    ALLNONBLANKROW 返回非空白的数据

                                                                                                                                                                                        

     FILTER(表,FilterExperssion) 

    ALLEXCEPT(表,ColumnName1,...)

    FILTER实现对行的筛选,ALLEXCEPT实现对列的筛选。

    VALUSE(TabelNameOrColumnName)等于只按一列进行SUMMARIZE

    TOPN(N Value,表,[OrderBy_Expression1],[Order1]...)。在表中选择前N项,按OrderBy_Expression排序,排序方式为Order(ASC,DESC)

    SUMX经常与FILTER一起使用,能够实现无关系的数据获取(可能需要搭配RELATED使用)。

    3.3earlier函数

     与SUMX,FILTER连用。可以创建一个辅助列。

    四、计值与上下文

    4.1筛选上下文与行上下文

    上下文:context、语境、环境。

    筛选上下文:行区域、列区域、筛选、切片器。

    行上下文:增加辅助列:销售额 = 单价 * 数量。是一行一行计算的。

      

    4.2使用filter、all进行上下文交互

    当使用filter是,会将行上下文带入到透视中,也会受筛选上下文的控制。

    当使用all时,将强制取消筛选上下文。

    当使用calculate:当外部的上下文与内部上下文冲突时,以内部为准,强制替换外部的上下文。

      表达式 相同 区别
    SUMX SUMX(Table,expression) 都可以被筛选  expression不同。比如求金额。sumx(table,金额)而calculate为calculate(sum(金额),filter)
    CALCULATE CALCULATE(expression,filter) 如果筛选条件不是filter中的限制条件,则结果相同 当外部的上下文与内部上下文冲突时,以内部为准,强制替换外部的上下文。

     建议使用CALCULATE。

    4.2使用CALCULATE进行上下文转换(占比)

    主要函数:CALCULATE、FILTER、ALL。

     

     

     占比:占比:=DIVIDE(SUM([金额]),CALCULATE(SUM([金额]),ALL('产品分类'[产品分类])))

    也可以写成

     占比:占比:=DIVIDE(SUM([金额]),CALCULATE(SUM([金额]),ALL('产品分类')))

       

    五、多对多关系

     首先要建立联系。

    USERELATIONSHIP(ColumnName1,ColumnName2)

    ColumnName1一般为多段,ColumnName2一般为为一端。

    六、常用分析

    6.1、占比分析

    主要是82分析和721分析。

    用到的函数SUMX、FILTER、EARILIER、DIVIDE、SUM、IF

    思路:

    1. 将占比列进行累加,并求出累计占比;
    2. 用IF函数判断判断占比所属的范围。

    6.2、占比分析

     用到的函数IF、HASONEVALUE、VALUSE。

    思路:

    1. 创建链接表,添加到模型,方便更改汇率。
    2. 书写函数。 

     6.3分组分析,可以看成是占比分析的模糊版

    用到的函数VALUS、CALCULATE、FILTER、

    思路:

    1. 将占比列进行累加,并求出累计占比;
    2. 用IF函数判断判断占比所属的范围。

     6.4排名分析

    将排名列进行排名,然后进行分析。

    用到的函数:ALLSELECT、RANKX、HASONEVALUES(去除汇总列排名)

    思路:

    1. 用RANKX进行排名

     6.5排名分析进阶

     

     6.4排名分析

    将排名列进行排名,然后进行分析。

    用到的函数:ALLSELECT、RANKX、HASONEVALUES(去除汇总列排名)

    思路:

    1. 用RANKX进行排名

     

  • 相关阅读:
    wcf布到服务器下载文件大小限制问题
    动态修改母版页中的DIV标签中的LI的A的CLASS属性
    c# 分页的方法
    Java学习笔记-异常处理-有风险的行为
    ASP.NET Core中的静态文件
    在ASP.NET Core中进行配置
    ASP.NET Core中的中间件和请求管道
    Kestrel:ASP.NET Core的Web服务器
    ASP.NET Core Program.cs
    ASP.Net Core Startup类
  • 原文地址:https://www.cnblogs.com/qianslup/p/11334745.html
Copyright © 2011-2022 走看看