如何使用 Power BI DAX 从移动表计算每天的库存?

2023-12-02

我有一张库存变动表。每个库存项目都有一个唯一的 ID,并且它们会随着时间的推移更改状态(假设状态 A、B、C 和 D,但并不总是按此顺序)。 ID的每次状态变化都是表中的一条新记录,并带有状态变化的时间戳。我的目标是使用 Power BI DAX 计算某一天状态“B”的库存数量。其逻辑是计算在某一天之前违反状态“B”但在该天之前没有任何更新状态的不同 ID 的数量。

源表示例:

ID  |  TimeStamp  |  Status
1   |  8/20/2018  |    A
1   |  8/21/2018  |    B
1   |  8/24/2018  |    C
2   |  8/19/2018  |    A
2   |  8/20/2018  |    B
2   |  8/22/2018  |    C
2   |  8/24/2018  |    D
3   |  8/18/2018  |    A
3   |  8/21/2018  |    B
4   |  8/15/2018  |    A
4   |  8/17/2018  |    B
4   |  8/24/2018  |    D

输出表示例:

Date       |  Count of Items in Status B on this Day
8/17/2018  |     3
8/18/2018  |     2
8/19/2018  |     0
8/20/2018  |     8
8/21/2018  |     10
8/22/2018  |     5
8/23/2018  |     3

我正在考虑为每个 ID 的状态为“B”的最新时间戳创建一个表,然后在状态“B”的时间戳之后查找下一个时间戳(如果适用):

ID (primary key)  |  TimeStamp of 'B' breached | TimeStamp of next status breach
1                 |     8/20/2018              |  8/21/2018
2                 |     8/18/2018              |  8/22/2018
3                 |     8/21/2018              |  
4                 |     8/15/2018              |  8/20/2018

然后,我将上述数据插入到日期上下文中,并计算上表中 ID 的数量,其中““B”的时间戳被破坏“值较小并且”下一次状态违规的时间戳" 值大于特定日期。

不幸的是,我不确定如何将此逻辑插入 DAX 语法中,因此任何建议将不胜感激。

多谢! 盖尔戈


这有点棘手,但我们可以通过在度量中使用临时计算汇总表来实现:

CountStatusB =
    SUMX(
        ADDCOLUMNS(
            SUMMARIZE(
                FILTER(
                    ALL(Inventory),
                    Inventory[TimeStamp] <= MAX(Inventory[TimeStamp])
                ),
                Inventory[ID],
                "LastTimeStamp",
                MAX(Inventory[TimeStamp])
            ),
            "Status",
            LOOKUPVALUE(Inventory[Status],
                Inventory[ID], Inventory[ID],
                Inventory[TimeStamp], [LastTimeStamp])
            ),
        IF([Status] = "B",
            1,
            0
        )
    )

首先,我们创建一个汇总表来计算最后的TimeStamp对于每个ID价值。为此,我们使用SUMMARIZE过滤表上的函数,我们只考虑当天或更早的日期,分组依据ID,并计算出最大值TimeStamp.

一旦我们有了最大TimeStamp per ID今天,我们可以查一下Status是在那天,并将其作为一列添加到汇总表中。

一旦我们知道了最新的Status对于每个ID今天,我们只需要总结一下Status is "B"并忽略其他的。


如果我们将其分解为步骤,可能会更容易阅读该措施。这里的逻辑与之前相同,但为了更加清晰而使用变量。

CountB = 
    VAR CurrDay = MAX(Inventory[TimeStamp])
    VAR Summary = SUMMARIZE(
                      FILTER(
                          ALL(Inventory),
                          Inventory[TimeStamp] <= CurrDay
                      ),
                      Inventory[ID],
                      "LastTimeStamp",
                      MAX(Inventory[TimeStamp])
                  )
    VAR LookupStatus = ADDCOLUMNS(
                           Summary,
                           "Status",
                           LOOKUPVALUE(Inventory[Status],
                               Inventory[ID], Inventory[ID],
                               Inventory[TimeStamp], [LastTimeStamp]
                           )
                       )
    RETURN SUMX(LookupStatus, IF([Status] = "B", 1, 0))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Power BI DAX 从移动表计算每天的库存? 的相关文章

  • 如何在 DAX (Power BI Desktop) 中计算总价值的百分比

    我在 Power BI Desktop 中有以下切片器 其中客户数量计算为计数 不同 Fact EHRTransaction ClientFK 在我的数据模型中 我的目标是计算占总数的百分比 13 639 并将其作为度量或另一个列添加到此切
  • PowerBI:将列拆分为单独的列

    我有一个正在导入的类别多选字段 其中包含多个用逗号分隔的值 农业 小额信贷 和平建设 我的主要本能是使用文本函数将每个值拆分为单独的列 但我想知道是否有更好 更简单的方法来做到这一点 好的 找到了 在数据视图中打开编辑查询 右键单击该列 拆
  • Power BI / 在报表视图上添加刷新按钮

    我在 Power BI 方面没有太多专业知识 我开始研究它 发现它非常简单 并且我创建了一份报告 该报告运行良好 现在 我需要在报表上添加刷新按钮 该按钮将刷新数据源并从中获取最新数据 我尝试对其进行大量搜索 但仍然无法找到任何合理的解决方
  • 从提供者读取数据时发生错误。根据验证程序,远程证书无效

    I m trying to connect Postgres Database on AWS EC2 instance to Microsoft PowerBI I tried various method available on int
  • 如何在 power bi 的切片机中拥有实际的日历?

    当我们的 power bi 报告运行时 它会根据相对切片器创建的当前日期运行它 我们的用户还希望有一些选项来使用实际日历选择不同的日期范围 并在使用当前日期过滤器运行初始报告后单击它 SSRS 中完成的方式 使用除列表 下拉或相对之外的数据
  • 通过 Rest API 以 csv 格式导出 PowerBI 报告

    PowerBI 仅为分页报表提供了 CSV 格式导出 API 不适用于通过导出 API 仅支持 pbix ppt png 格式的普通报表 参考 https learn microsoft com en us rest api power b
  • 从 power bi 公共嵌入中删除共享栏

    我有一份关于 power bi 的报告 已发布在网络上 我将在我的计算机上创建一个本地页面 以通过嵌入代码查看它 并在 Dropbox 上与其他人共享 我想删除带有社交媒体链接的按钮栏以防止共享 我还可以阻止显示 iframe 源链接吗 也
  • dax 中选取不同值的动态总和

    以下是样本数据 Week Practice Type capacity Gen 1 BI c 80 0 1 BI c 80 1 1 BI sc 160 1 1 BI pc 240 0 1 BI pc 240 3 1 BI mc 1160 1
  • 将 JSON 数组转换为

    我正在 Microsoft Power BI 中创建自定义视觉对象 创建 api 使用 typescript 和 d3 库 我也在使用jquery 我正在尝试创建一个分层树来表示拖入视觉对象的字段 因此树的深度是在运行时决定的 所以它不知道
  • 桥接表 - DAX 还是 M?

    我们应该使用 DAX 还是 M 构建桥接表 图片盗自here https stackoverflow com questions 53320431 power bi weighted average yield across 2 table
  • 如何在运行总计矩阵 Power BI 中填写空白

    我正在 Power BI 中研究损失三角 其中AccidentYear是行和DevYear是列 表中的值为Running Total通过测量创建 Running Total Loss CALCULATE SUM fact Losses Pa
  • Power Query M - 表达式错误 - 列表到文本

    我正在使用 Web Contents 执行 API 请求 我提交了一个从函数获取的动态访问令牌 let Source Json Document Web Contents https api url com endpoint id Head
  • 在 DAX 中进行测量以计算仅适用于 Power BI 的选定月份的年初至今

    如何构建 DAX 度量来计算特定月份的 YTD 值总和 这里我们有按月份分组的事实表 FactTable 填充了实际数据和预测数据 了解实际结束时间的唯一方法是 截止日期 列 年初至今 中的信息 在表 截止日期 列 YTD 结束 中 这是一
  • 使用示例 Node 和 .NET 的未经授权 (401) Power BI Embedded

    运行示例时为您的客户嵌入 https learn microsoft com en us power bi developer embedded embed sample for customers tabs node js step 8
  • 使用服务主体对 GetReportInGroupAsync PowerBI Embedded API 调用进行未经授权的响应

    我正在尝试将 Power BI 报告嵌入到我的 Net Core 应用程序中 但是我无法从请求中获得有效的响应 我正在使用 Microsoft PowerBI API 包和通过服务主体注册的 azure 应用程序 据我所知 我已按照此处的说
  • 在 Power BI 自定义视觉对象中使用 d3.js 库绘制一条线

    我正在努力在 Power BI 自定义视觉对象中绘制一条单线 Power BI 中的报表是使用 TypeScript 和 d3 js v 3 0 编写的 我可以用轴绘制图表 但没有出现线条 在 HTML 文件中使用纯 d3 js 确实很容易
  • 使用“each”关键字将“列表”传递给函数调用

    首先 我承认我不是 M 或 Power Query 专家 尽管我确实有一些 Power BI 经验 我正在尝试开发一个股票投资组合 该投资组合将跟踪定制的 股票列表及其价格历史记录和其他指标 由于我试图解决的问题 我的部分代码基于以下博客
  • 强力查询历年产品利润对比

    我有一个数据集 其中包含公司 产品 利润和年份 公司每年都会销售少量产品并获得利润 公司没有必要在明年销售相同的产品 他们可能会省略以前的产品并添加新的少量产品 我只想对两年的产品进行逐个比较 如下所示 我的数据集是 Company Pro
  • 在 Asp.Net Core 中手动创建 OData feed,在 Power BI 中使用 feed

    我正在尝试手动编写一个用作 OData feed 的 Web Api 我不需要太多功能 只需将实体框架中存储的数据导出到 Power BI 等应用程序的能力即可 我只需要能够查看 因此我计划只实现 GET 请求 我目前有一个标准 Web a
  • PowerBI区分空白值和0值

    有没有办法区分列中的空白值和列中的 0 值 当我使用 if 语句进行测试时 它们被视为相同的值 有什么建议吗 就在这里 在计算列中 首先测试值是否为空 然后测试是否为零 因此 创建一个标志并通过它过滤您的总和度量 即 No blanks s

随机推荐

  • javascript 块中的 HTML 注释?

    我有一个像下面这样的函数 它在 HTML 页面中插入一段 HTML 代码 function someEventHandler htmlContent document getElementById some element id inner
  • C# 将魔术字符串转换为 lambda 表达式

    我有一组扩展方法 允许在 LINQ 中使用魔术字符串OrderBy 方法 我知道第一个问题是为什么 但它是通用存储库的一部分 并且具有灵活性 以便可以从 UI 发送字符串并直接使用 如果您传入一个代表您正在查询的主要实体上的属性的魔术字符串
  • 如何创建背景网格

    我想创建一个网格作为我的 JavaFX 应用程序的背景 我当前的解决方案是在画布上绘制一个矩形 从中创建一个图像图案并将其设置为填充 Question 有没有更好的方法来解决这个问题 最好是通过CSS 当前版本 public class B
  • 垂直翻转字节数组中位图的算法

    我正在编写一个类 用于通过 Mono For Android 将位图打印到 Android 中的便携式蓝牙打印机 我的类用于从流中获取像素数据 以便可以以正确的格式将其发送到打印机 现在这个类很简单 它只是读取高度 宽度和每像素位数 它使用
  • 无需条件语句即可访问第 n 位

    所以我有一个位序列 1010 1 是最高有效位 如果奇数位为 0 我的函数需要返回整数 0 如果奇数位为 1 则需要返回 1 我不能使用任何 for 循环或任何类似性质的东西来查看是否需要返回 0 或 1 有没有人有任何建议如何解决这个问题
  • Vagrant:在配置阶段创建此所有者时如何将所有者设置为同步/共享文件夹

    Vagrantfile 相关部分 config vm provision chef solo do chef chef add recipe yum various recipes in one of these i create the
  • 检测“暂停”的 Windows 8/10 进程

    Windows 8 10 中的 UWP 或 Metro 应用程序不在前台时可以暂停 处于此状态的应用程序继续存在 但不再消耗 CPU 时间 看来引入此更改是为了提高平板电脑和手机等低功耗 存储设备的性能 检测处于这种状态的进程的最优雅 最简
  • 如何检查SQLite文件一致性(健康检查)

    我在 Android 应用程序中使用 SQLite 数据库文件 该文件是使用以下方法从存储在资产文件夹中的多个部分创建的 ReignDesign 在 Android 应用程序中使用您自己的 SQLite 数据库 组装过程完成后 我想检查数据
  • 无法启动 Hyper-V 容器

    在此输入图像描述我正在尝试运行 docker 容器 但收到以下错误消息 因为未启用 Hyper V 和虚拟化 但我已经启用了 Hyper V 和虚拟化 我已经通过 Bios 以及 power shell 命令进行了 Hyper V 设置 尽
  • 无法从 Jenkins CI 启动浏览器

    当从 Jenkins 构建后通过调用 rake 任务触发黄瓜测试时 我无法在 CI 服务器上启动浏览器 在我的例子中是 Linux 上的本地主机 Jenkins 控制台日志如下 我非常确定一切都设置正确 因为我可以通过命令行在服务器上成功运
  • OpenCV 2.3 编译问题 - 未定义的参考 - Ubuntu 11.10

    系统信息 Ubuntu 11 10 64 位 和 OpenCV 2 3 今天安装 我正在尝试在 OpenCV 2 3 中编译一些非常简单的代码 但出现了一个奇怪的错误 include
  • 来自 python 的 Windows 特殊文件夹和已知文件夹(开始菜单、下载等)[重复]

    这个问题在这里已经有答案了 确定Windows路径的最佳方法是什么特殊文件夹 and 已知文件夹在Python中 我发现了几种流行的 SpecialFolders 方法 也称为CSIDL 但还没有什么简单的事情已知文件夹ID 保持了向后兼容
  • 使用 * 访问方法中的值

    在方法定义中 当 按以下方式使用 这是什么意思 def foo end 我理解以下用法 def foo args end 我不确定在前一种情况下如何访问方法参数 它的意思是 接受和丢弃任意数量的参数 两个定义在技术上是相同的 但不给参数数组
  • 使用 Apple Healthkit 测量心率

    我目前正在应用程序中使用 Healthkit 获取大多数类型的信息都没有问题 但在心率方面遇到问题 每次我尝试读取样本时 结果都是 0 我有一块 Apple Watch 我的心率被输入到 Apple Health 应用程序中 并且可以在那里
  • JSF:Mojarra 2.1 到 2.2 迁移导致 ViewExpiredException

    我正在将应用程序从 PrimeFaces 3 5 18 Mojarra 2 1 26 移植到 PrimeFaces 4 0 2 Mojarra 2 2 4 当我重新启动服务器时 我收到 ViewExpiredException 服务器日志包
  • HRESULT 异常:0x800AC472

    当我将 Excel 应用程序的 displayalert 属性设置为 true 时 会触发此异常 为什么 属性浏览器是否已暂停 如果是这样 这可能会有所帮助 来自 Excel 中集合运算的 HRESULT 800ac472 一个建议是将您的
  • 批处理文件 - 下载最新的 FTP 文件夹

    我正在尝试从 FTP 服务器下载最新的文件夹 该文件夹包含多个文件夹 其中包含多个 CSV 文件 我遇到的问题是每天都会创建文件夹 每次运行脚本时我只希望它下载该位置的最新文件夹 我不知道如何指定这一点 甚至不知道如何使用批处理文件从 FT
  • 添加更复杂的子类公理

    我偶然发现了另一个问题 I want to achieve something similar to this 我想使用 RDFList 来执行此操作 将必要的属性添加到列表中 然后调用方法 createUnionClass 或 creat
  • CImg 与 jpeglib

    我试图让 CImg 与 Visual Studio 2017 和 jpeg 9b 一起使用 但由于某种原因它不能使用 Code define cimg use jpeg include CImg CImg h using namespace
  • 如何使用 Power BI DAX 从移动表计算每天的库存?

    我有一张库存变动表 每个库存项目都有一个唯一的 ID 并且它们会随着时间的推移更改状态 假设状态 A B C 和 D 但并不总是按此顺序 ID的每次状态变化都是表中的一条新记录 并带有状态变化的时间戳 我的目标是使用 Power BI DA