【问题标题】:How do I get the Average number of days between multiple dates in Tableau如何在 Tableau 中获取多个日期之间的平均天数
【发布时间】:2014-08-09 21:18:32
【问题描述】:

我正在使用 Tableau,并且我有一个名为 Sales_Order_Date 的字段。我需要获取每个销售订单之间的平均天数。

示例: 我有 3 个订单

  1. 01/01/2014
  2. 2014 年 1 月 20 日
  3. 30/01/2014

订单 1 和订单 2 之间的天数 = 19 天 订单 2 和订单 3 之间的天数 = 10 天

平均为 29/2 = 14.5 天

如何在 Tableau 中使用 000 个日期的计算字段来执行此操作?

谢谢, 斯特凡。

【问题讨论】:

    标签: average datediff tableau-api calculated-field


    【解决方案1】:
    window_avg(datediff('day',
                        lookup(min(Sales_Order_Date), -1),
                        min(Sales_Order_Date)))
    

    假设您的计算字段设置为“使用”离散维度 DAY(Sales_Order_Date)“计算”

    从最里面的部分开始锻炼:

    • lookup() 函数计算表中上一个条目的日期
    • datediff() 函数计算上一个日期与当前行中日期之间的差值(以天为单位)
    • window_avg() 计算记录日期之间所有间隔的平均值

    在此示例中,我将所有逻辑放在一个表计算中。在开发表格计算时,通常最好将它们逐步构建为一系列调用其他(较低级别)计算的计算,并使用显示所有中间步骤的表格来测试它们。并且只有在您对结果有信心后才隐藏中间步骤并切换到更直观的表示。

    此anwser 的早期版本还使用iif() 调用来避免为第一行调用lookup(),因为在这种情况下没有前一行。这是多余的,因为大多数 Tableau 函数通过忽略空数据来优雅地处理空数据,这正是这里的意义所在。

    【讨论】:

    • 感谢百万 Alex,这是一个非常有用的解释。你打破这个的方式对我帮助很大。
    • 函数可以再简化一点。 iif() 是多余的,可以删除。如果给定偏移量没有行,则 Lookup() 返回 null,并且 tableau 聚合函数忽略 null 值。应该通过测试验证
    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多