powerbi - power bi DAX 分层表名称串联
问题描述
因为两天我遇到了一个问题,我无法解决,所以我来这里寻求帮助......我有一点 dax 基本上采用分层表(整数)的路径并采用字符串名称路径中的第一个。
我使用的名称:
- 'HIERARCHY' 具有名称、id、路径、nbrItems、字符串的分层表
- mytable / addedcolumn1/2 用于模拟for循环的新表
DisplayPath =
var __Path =PATH(ParentChild[id], ParentChild[parent_id])
var __P1 = PATHITEM(__Path,1) var __P2 = PATHITEM(__Path,2)
var l1 = LOOKUPVALUE(ParentChild[Place],ParentChild[id],VALUE(__P1))
var l2a = LOOKUPVALUE(ParentChild[Place],ParentChild[id],VALUE(__P2))
var l2 = if(ISBLANK(l2a), "", " -> " & l2a)
return CONCATENATE(l1,l2)
我的问题是......我不知道路径中的索引数量,可以从 0 到我猜的 15......我尝试了一些东西,但无法找到解决方案。首先,我添加了一个名为 nbrItems 的新列,它计算路径列表中的项目数。
两列:
然后我根据路径列表中的项目数添加了模拟for循环的那段代码,我想在其中
- 获取参数名称
- 将它们连接成一个字符串,我可以返回并获取
string =
var n = 'HIERARCHY'[nbrItems]
var mytable = GENERATESERIES(1, n)
var addedcolumn1 = ADDCOLUMNS(mytable, "nom", /* missing part: get name */)
var addedcolumn2 = ADDCOLUMNS(addedcolumn1, "string", /* missing part: concatenate previous concatenated and new name */)
var mymax = MAXX(addedcolumn2, [Value])
RETURN MAXX(FILTER(addedcolumn2, [Value] = mymax), [string])
全表:
提前感谢您的帮助!
解决方案
好的,所以经过一些研究和大量尝试和错误......我想出了一个很好且简单的解决方案:最初的问题是我有一个分层表,但所有数据都在同一个表中。
我所做的是,用这个 dax 添加一个新的“父”列:
parent =
var a = 'HIERARCHY'[id_parent]
var b = CALCULATE(MIN('HIERARCHY'[libelle]), FILTER(ALL('HIERARCHY'), 'HIERARCHY'[id_h] = a))
RETURN b
这从 id_parent (参考屏幕)获取父名称。
然后我可以只使用路径函数,而不是在 id 上,而是在名称上......就像这样:
path = PATH('HIERARCHY'[libelle], 'HIERARCHY'[parent])
它使问题变得简单,因为我不需要在此之后用那里的名称替换 id ......
最后为了让它看起来不错,我使用了一些替换来移除管道:
formated_path = SUBSTITUTE('HIERARCHY'[path], "|", " -> ")
推荐阅读
- outlook - 从 Outlook 缓存中删除 LegacyExchangeDN 条目?
- python - 如何从月份和年份列创建日期时间索引,但没有日期?
- django - django-elasticsearch-dsl 不同步嵌套归档
- c# - 使用 Microsoft Graph SDK 获取具有特定电子邮件域的所有用户
- css - 如何通过使用 css 选择器从父 div 访问子 div 来为子 div 应用不显示
- oracle-apex - Oracle Apex 交互式网格页脚显示不正确
- c# - VS 自动生成的类错误:类型已经包含定义
- css - 使用节点从用户定义的值更改样式表
- c++ - C++:使用 std::string 的二进制表达式的无效操作数
- applet - Mifare 1k 卡是否支持 Java 卡?