CALCULATE 庖丁解牛系列- 扩展表 (5)

    Power BI“新表”

      我们在之前以及后面将进一步学习到:表函数构成了 DAX 作为查询语言的基础。并且表函数可以在本地使用,以便在查询工具中返回结果表。
      表函数还可以在 "Power BI" 中使用具有 "新建表" 功能(在“建模”菜单上), 以便在数据模型中创建新的物理表。这符合扩展表的行为—添加计算需要的列表。所以将Power BI的新表也作为扩展表系列的一部分。
      通常情况下,在PowerBI里进行分析的各种数据表都是从外部的一种或多种数据源导入进来的。但事实上,并不总是如此,某些情况下,在PowerBI Desktop中也可以根据需要直接创建各种需要的表。也就是说,在进行数据分析的过程中,也许还需要加入新的数据列表或者新的维度参数列表,而我们可能基于以下一些考虑:

(1)并不希望从外部数据源加载数据;
(2)只是临时使用某些列表(比如作为筛选参数),不希望回到PQ编辑器或其他来源表里进行处理;
(3)只是临时定义某个公式的参数列表;
(4)不希望影响原有列表关系模型。

      那么,可以利用已加载到模型中的数据进行构建新表,下面就来看看如何在PowerBI Desktop中的“新表",以及几种常见的使用场景。

    “新表”功能

        这很简单,在Power BI【建模】选项卡下点击【新表】,就可以创建一个表了。

      Power BI的“新表”以及“新建参数”是Power BI Desktop的新功能。你可以使用任何返回表的计算式来创建新的表。
      通常,Power BI只对已存在于数据模型里的数据进行建模分析,所谓新增的物理列表需要在加载前的数据源表或在Powerqurey中(ETL)中进行处理。但是“新表”让Power BI直接具有在数据模型里添加物理数据列表的功能。

        例如,我们新建一个空值的表:

      例如,新建一个“日期表":(点击建模新表,录入 公式即可,或者直接新建度量,产生结果表)

      在DAX中,对于一些表函数的行为,我们总觉得很难理解,这可能因为:这些表函数创建的表实际是一种虚拟表(由存储引擎在内存里执行的存储数据,你不能直观的看见它,其结果也不可视)。 所以,这就很难直观的查看到表函数产生的结果、以及所运行的错误在哪里。
      其实,除了使用DAX STUDIO之外,你现在知道:还可以使用PowerBI的"新表"作为列表结果的查询、调试工具。

      例如,你希望了解:UNION、INTERESCT、CROSSJOIN、NATURALINNERJOIN、NATURALLEFTOUTERJOIN等这些表函数,并需要查看由这些表函数定义的计算结果,在不使用DAX STUDIO的情况下,可以使用Power BI的“新表”功能:

      例如:我们希望查看由UNION并集函数构建的结果列表:

      上图由UNION并集函数将来自VALUES()定义的两个唯一值列表(可以来自不同表里的关系列表)组合在了一起。从UNION函数定义计算的结果表可观察到:它的功能是纵向追加数据,和PQ里的“追加查询”功能相似。

      而且,这个表可充当数据模型里的物理表使用。

    “新表”实例

    让我们来揭示DAX里一个巨大的秘密武器库。

        在使用DAX的过程中,你会接触到它,只是还没有一把“钥匙”而已。
        比如,你希望像使用VLOOKUP函数那样,向数据里引用一个或多个需要的物理列表来参与计算,而不需要从数据模型外导入或引入新的维度表(ETL)?答案是,太可以了!(前面已经讨论)。
      最新的PowerBI中已体现了列表数据模型的该需求行为的理念设置,这是巨大的宝库,创建列表的宝藏之处!再次请记住这个位置:

      如果不是想定义标量值的度量或计算列,而是需要一个物理性的列表,你可以使用“新表”,并使用任何结果为表的函数来定义生成你需要的表(一个或多个列表)。
      例如,我们知道VALUES()函数是一个能生成唯一值的列表函数(结果返回表),好,我们使用它,来生成一个需计算需要的唯一值列表(也许正发愁找不到一个关系字符列表来创建列表关系)。

        假如引用的是数据模型里info_product表的[产地]列,则马上生成一个已定义的表:列1 表。

      在数据列表关系视图中,你可以看到它的身影,它其实就是一个物理表,具有物理表的一切特性(如可以与其他表建立关系等)。从这里还可以看出,【新表】的作用是:在不影响原有数据模型、有新表需求的前提下可以任意的创建你所需要的物理列表。


        继续试验由NATURALINNERJOIN函数定义的结果表:

      很容易观察到结果列表集为两个表的横向的合并联结集。

      该表依据NATURALINNERJOIN定义的两个参数表组合在一起,NATURALINNERJOIN函数类似于我们最熟悉的VLOOKUP函数,它的参数就是两个表格,不过它连接的两个表需要区分先后顺序,第一个表是基表,第二个表是联结表,类似于左联结(LEFT  JION)。

      通过以上举例,在Power BI中"新表",与其他从外部数据导入的物理表并没有区别,它可以和其他表建立关系、也可以添加到报表进行可视化、作为维度表(参数表)、定义计算需要的筛选列表等等。而且,因为是引用原物理表的列表构建的,那么,一旦源数据变动,这些新表同样会自动更新(具有列表血缘关系)。
      注意:也并不是说新表与物理表之间就毫无区别,在列表血缘以及内部引擎上还是存在细微的差异,不过你无须考虑这些。

        我们以前其实已经提示过:DAX里有粗旷的列表、细腻的列值。由于“新表”实际可看成是物理表。那么,由于列表间物理关系的存在(血缘),使得不同的列表之间可以任意组合(合纵连横)。
        我们试想一下,由于新表还可以由定义结果为表的计算度量来生成,由于度量的筛选与条件的千变万化(参数的不同)而使得"新表“拥有无比的多样性。
        并且,"新表"是用DAX函数构建的,这让它又变得十分灵活高效,利用DAX的强大功能,新表的使用场景应该远不止于此......。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容