ADDCOLUMNS函数
ADDCOLUMNS函数,从名称上来看,就能看出这个函数的用途。
ADD表示增加的意思;COLUMNS表示列。
因此这个函数表示为表添加一个新列。按照微软的划分属于“表函数”。
之前白茶曾经写过一篇关于这个函数的文章。
传送门:《基础手札丨创建表》
语法
DAX=ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…)
参数
table:需要添加新列的表。
name:新列的名字。
expression:表达式。
返回结果
包含原始列和新增列的一个新表。
注意
值得注意的是,此函数生成的表参照第一参数行值,因此属于迭代函数;
此函数的内部新增列的表达式,需要注意上下文转换的问题。
@高飞老师是这样说的:
ADDCOLUMNS不保留添加列的数据沿袭。
按照白茶的个人理解,数据沿袭大概率指的就是上下文的问题。
例子
模拟数据:
这是白茶随机模拟的数据。
例子1:
ADDCOLUMNS例子1 =
ADDCOLUMNS ( '事实表', "计数", COUNTROWS ( '事实表' ) )
结果如下:
可以很清楚的看到,新增的计数列每一行的结果都是总计行数,很明显没有进行上下文转换。
例子2:
ADDCOLUMNS例子2 =
ADDCOLUMNS (
'事实表',
"颜色次数", CALCULATE ( COUNTROWS ( '事实表' ), ALLEXCEPT ( '事实表', '事实表'[颜色] ) )
)
结果如下:
通过CALCULATE进行上下文转换以及ALLEXCEPT清楚筛选效果之后,颜色次数这一列可以正确的计算出每一个颜色出现的总次数。
说一些额外的东西:
其实相较于ADDCOLUMNS函数的新增列,白茶更喜欢SUMMARIZE函数。
但是考虑到SUMMARIZE性能的问题,还是建议小伙伴使用前者。
毕竟,如果一个Dashboard刷新半天也没个结果,那么我们的努力可能就会白费,注意性能问题。
小伙伴们❤GET了么?
白茶会不定期的分享一些函数卡片
这里是白茶,一个PowerBI的初学者。