powerbi - DAX:映射项目如果同时出现在 2 个日期
问题描述
如何映射或计算上个月也在我的数据中的新项目?
例如:
身份证/日期/项目
123 / 01.12.20 / 一
123 / 01.11.20 / 一
143 / 01.11.20 / 二
153 / 01.12.20 / 三
将获得:
123个/一个
解决方案
看起来 Item 是 ID 的描述。我们可以编写一个度量来显示该项目,如果它在前一个月也存在,否则为空白。这样,在 Power BI 中使用 ID 和此度量创建表格视觉对象,我们将只看到上个月出现的 ID 和项目。
Item if in previous month =
IF(
HASONEVALUE( T[Item] )
&& HASONEVALUE( T[ID] ),
VAR currentMonth =
MONTH(
MAX( T[Date] )
)
VAR currentItem =
SELECTEDVALUE( T[Item] )
RETURN
IF(
NOT ISEMPTY(
FILTER(
ALL( T ),
MONTH( T[Date] ) = CurrentMonth - 1
&& T[Item] = currentItem
)
),
currentItem
)
)
如果我们有两个月的数据,这很有效,就像你的问题一样。如果我们有两个多月的时间,那么也许我们真正想要的是检查最后一个月的前一个月。
Item if in previous to last month =
VAR LastMonth =
MONTH(
MAXX(
ALL( T ),
T[Date]
)
)
RETURN
IF(
HASONEVALUE( T[Item] )
&& HASONEVALUE( T[ID] )
&& MONTH(
MAX( T[Date] )
) = LastMonth,
VAR currentItem =
SELECTEDVALUE( T[Item] )
RETURN
IF(
NOT ISEMPTY(
FILTER(
ALL( T ),
MONTH( T[Date] ) = LastMonth - 1
&& T[Item] = currentItem
)
),
currentItem
)
)
推荐阅读
- neo4j - 无法使用本机投影创建图形
- postgresql - 列中的重新排序(重新排序)返回 false
- reactjs - 如何将来自 React 应用程序的 API 请求代理到生产中的单独 Express 服务器
- javascript - 更改时自动更新文本条目
- javascript - 如何以文本输入作为最后一个选项在表单中创建选择输入?
- postgresql - 在 timescaleDB postgresql 上的 CAGG 之上实现(连续聚合)CAGG
- python - 带有数据库服务器的多个 django 服务器
- google-sheets - 将一行转换为共享一些相同数据的多行
- excel - Excel 筛选公式/函数 - 从筛选公式/函数返回第一行
- javascript - 使用另一个数组内的数组中的数据进行过滤