从数据到信息
从信息到洞察

理解 CONCATENATEX

将多个值连接到一起,以文本的形式输出。

CONCATENATEX

CONCATENATEX ( <Table>, <Expression>, [<Delimiter>], [<OrderBy_Expression>], [<Order>], ... )

对<Table>的每一行计值表达式<Expression>,将所有结果连接到一起返回单个字符串,并使用指定的分隔符<Delimiter>分隔。

参数 属性 描述
Table 用于表达式每行计值的表
Expression 用于逐行计值的表达式
Delimiter 可选 连接表达式结果的连接符
OrderBy_Expression 可选
可重复
排序使用的表达式
Order 可选
可重复
排序逻辑. 0/FALSE/DESC – 降序; 1/TRUE/ASC – 升序(默认)

CONCATENATEX迭代函数,它迭代由第一参数提供的表,对于表的每一行,计值第二参数提供的表达式,所有表达式的结果都使用第三个参数提供的分隔符连接起来。

CONCATENATEX 的结果可以显示到报告或透视表的值区域,比如

统计每个产品的对应的所有顾客,显示在透视表中

Purchasing Customers:=
CONCATENATEX(
    VALUES(Sales[Customer]), 
    Sales[Customer], 
    ","
)

对结果排序

CONCATENATEX 可以对返回的结果排序,以指定的逻辑组合到一起,以下面的模型为例,当你需要在计算列中显示每位客户的所有下单日期,并按从小到大的顺序排列时,可以使用 CONCATENATEX。

样例数据和模型

Order Dates =
CONCATENATEX (
    RELATEDTABLE ( Orders ),
    FORMAT ( Orders[OrderDate], "yyyy/mm/dd" ),
    ", ",
    Orders[OrderDate]
)

CONCATENATEX 第五参数默认使用升序,你可以自行修改排序规则

排序结果

 

21
说点什么

1000
 
鼓掌微笑开心憧憬爱你色并不觉得吃瓜doge二哈喵喵思考笑哭捂脸悲伤大哭抓狂汗偷笑打脸捂眼黑线问号晕拜拜闭嘴衰咒骂ok作揖
5 评论数
17 被回复的评论
6 订阅评论的人数
 
查看最近回复
查看最热评论
  订阅本文评论  
最新 最旧 得票最多
提醒
游客
arya

请问为什么我的结果是全部的类型,而不是对应的类型 捂脸

游客
黄时

文中应该是values(product)吧?

成员
lyliuyouyang

你好,我对这个函数是很惊喜的,解决了在数据透视表中文本只能计数不能统计具体内容的情况,使用values和all也能去重,不过仍有一个地方不明白,就是这些文本最后串起来统一呈现,那先后顺序可以按照升序或者降序排列吗?在powerquery中可以使用list.sort和list.distinct解决,但是在dax里面好像我自己就没办法了,麻烦老师解答一下吧!

游客
liu

如何去重,比如A分组,有拼接值a1,a1,a2,a3,a4,a1,如何实现a1,a2,a3,a4

DAX 圣经

导读

初识 DAX

DAX 基础知识

DAX 原理

DAX 高级原理

基础函数类型

迭代函数

CALCULATE 函数

CALCULATE 调节器

基础表函数

条件判断函数

查找匹配函数

时间智能函数

统计类函数

投影函数

分组/连接函数

集合函数

其他函数