powerbi - Power BI DAX:使用行对筛选器上下文计数不同的度量
问题描述
现在坐久一点,这是我的数据:
+------------+---------+------------+
| OrderID | Status | Text |
+------------+---------+------------+
| 1 | rel | W3-A |
+------------+---------+------------+
| 1 | conf | log |
+------------+---------+------------+
| 3 | rel | W3-A |
+------------+---------+------------+
| 4 | rel | W3-B |
+------------+---------+------------+
| 5 | rel | W3-C |
+------------+---------+------------+
| 6 | rel | W3-B |
+------------+---------+------------+
| 6 | conf | log |
+------------+---------+------------+
| 7 | conf | log |
+------------+---------+------------+
| 8 | rel | W3-B |
+------------+---------+------------+
| 8 | rel | log |
现在我想要一个显示:
=计算每个具有 (Status=rel && text= 以 "W3" 开头) 但也有一行 (Status=conf && text=log) 的不同 orderID
这将导致总数为“2”:OrderID 1 和 OrderID6 满足这些条件
作为表格,它看起来像这样:
+------------+---------+------------+------------+
| OrderID | Status | Text | distinctCount
+------------+---------+------------+------------+
| 1 | rel | W3-A | 1
+------------+---------+------------+------------+
| 1 | conf | log | 1
+------------+---------+------------+------------+
| 3 | rel | W3-A |
+------------+---------+------------+------------+
| 4 | rel | W3-B |
+------------+---------+------------+------------+
| 5 | rel | W3-C |
+------------+---------+------------+------------+
| 6 | rel | W3-B | 1
+------------+---------+------------+------------+
| 6 | conf | log | 1
+------------+---------+------------+------------+
| 7 | conf | log |
+------------+---------+------------+------------+
| 8 | rel | W3-B |
+------------+---------+------------+------------+
| 8 | rel | log |
-------------+---------+------------+------------+
TOTAL 2
因此,在“卡片”可视化中拖动度量应该简单地显示
Order CountDist
+--------------+
2
+--------------+
解决方案
您可以找到满足每组条件的 ID,然后通过交集找出满足这两个条件的 ID。
DistinctCountPairs =
VAR rel_W3 =
CALCULATETABLE (
DISTINCT ( Orders[OrderID] ),
Orders[Status] = "rel",
LEFT ( Orders[Text], 2 ) = "W3"
)
VAR conf_log =
CALCULATETABLE (
DISTINCT ( Orders[OrderID] ),
Orders[Status] = "conf",
Orders[Text] = "log"
)
RETURN
COUNTROWS ( INTERSECT ( rel_W3, conf_log ) )
如果需要,可以将最后一行切换为
CONCATENATEX ( INTERSECT ( rel_W3, conf_log ), Orders[OrderID], "," )
打印交叉点中的 ID 列表。
推荐阅读
- javascript - 如何在没有 Google Apps 脚本的情况下从 Google Sheet API 获取隐藏行的信息
- javascript - 如果 HTML 返回每个引号之前都带有反斜杠会发生什么?
- r - 将列表列中的函数应用于R中的列
- javascript - 可以通过allowClear = true 选择使用哪个AntD 图标吗?
- swift - 如何让 UIPageViewController 使用过渡样式滚动?
- php - 合并两个 JSON php
- ios - 运行后 UIbutton 拉伸
- c++ - 为什么 vector::erase 不能在具有 const 的类元素上工作
- sql - 如何从有条件的数据库中获取行 - 另一个表中存在另一个?
- verilog - 在 for 循环中使用 assign