函数周期表丨添加列_大数据

ADDCOLUMNS函数

ADDCOLUMNS函数,从名称上来看,就能看出这个函数的用途。

ADD表示增加的意思;COLUMNS表示列。

因此这个函数表示为表添加一个新列。按照微软的划分属于“表函数”。

之前白茶曾经写过一篇关于这个函数的文章。

传送门:《基础手札丨创建表》

语法

DAX=ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…)

参数

table:需要添加新列的表。

name:新列的名字。

expression:表达式。

返回结果

包含原始列和新增列的一个新表。

注意

值得注意的是,此函数生成的表参照第一参数行值,因此属于迭代函数;

此函数的内部新增列的表达式,需要注意上下文转换的问题。

@高飞老师是这样说的:

ADDCOLUMNS不保留添加列的数据沿袭

按照白茶的个人理解,数据沿袭大概率指的就是上下文的问题。

例子

模拟数据:

函数周期表丨添加列_创建表_02

这是白茶随机模拟的数据。

例子1:

ADDCOLUMNS例子1 =
ADDCOLUMNS ( '事实表', "计数", COUNTROWS ( '事实表' ) )

结果如下:

函数周期表丨添加列_自然语言处理_03

可以很清楚的看到,新增的计数列每一行的结果都是总计行数,很明显没有进行上下文转换。

函数周期表丨添加列_创建表_04

例子2:

ADDCOLUMNS例子2 =
ADDCOLUMNS (
    '事实表',
    "颜色次数", CALCULATE ( COUNTROWS ( '事实表' ), ALLEXCEPT ( '事实表', '事实表'[颜色] ) )
)

结果如下:

函数周期表丨添加列_数据分析_05

通过CALCULATE进行上下文转换以及ALLEXCEPT清楚筛选效果之后,颜色次数这一列可以正确的计算出每一个颜色出现的总次数。

函数周期表丨添加列_大数据_06

说一些额外的东西:

其实相较于ADDCOLUMNS函数的新增列,白茶更喜欢SUMMARIZE函数。

但是考虑到SUMMARIZE性能的问题,还是建议小伙伴使用前者。

毕竟,如果一个Dashboard刷新半天也没个结果,那么我们的努力可能就会白费,注意性能问题。

函数周期表丨添加列_数据分析_07

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

函数周期表丨添加列_数据分析_08

这里是白茶,一个PowerBI的初学者。

函数周期表丨添加列_创建表_09