运行 Tableau 中过滤行的总和

Running Sum of Filtered Rows in Tableau

我有一个table的挑战提交(记录了不同玩家在比赛中提交挑战的时间,以及提交是否正确)-

和另一个 table 具有与每个挑战相关的分数 -

如何绘制 运行 比赛前 3 名玩家随时间(仅过去 24 小时)获得的积分总和的图表?这里要注意的是,我只需要考虑第一次成功提交,以防比赛中有不止一次成功提交挑战(例如,玩家 A 的挑战 #17)。

编辑:

Dummy Data

期望输出:

我提议 solution/answer 假设一些事情-

  • 每天17:00挑战接受时间结束
  • 不同的线条代表不同的挑战

Step-1 创建一个 CF 以按日历日期调整 date/time - adjusted date as

DATEADD('hour', 7, [Date])

请注意,我已经添加了 7 个小时来制作最后一个日历 date/time,以便在第二天上午 00 点提交。

Step-2 创建另一个 CF win_loss as

If [Success]='W' then 1 ELSE 0 end 

step-3 创建另一个 CF game points as

[win_loss]*[Points (Points)]

Step-4再创建一个CF first win or loss as(这里不用担心丢失)

{FIXED [Player], [Challenge], [success] : MIN([Date])} = [Date]

第 5 步 在 'players' 字段上使用此公式(select 前 3)通过

创建一个包含 TOP-3 的集合
sum(
IF [first win or loss]= TRUE
then [game points] END)

第 6 步 通过拖动构建视图

  • setMDY(adjusted date) & first win or loss 过滤器 shelf/card
  • 向上下文添加 mdy 过滤器
  • [date]exact datediscreet 到列
  • sum(game points) 到行
  • 添加 table 度量计算 - 运行 总计
  • 右击sum(game points)点击edit in shelf并用这个替换现有的计算-
RUNNING_SUM(ZN(SUM([game points])))

(请注意,这将确保您的行始终从 f(x)=0 开始)

  • challenge 关于标记卡中的颜色
  • sum(game points) 到标记卡中的文本。

注意- (i) Set 上的过滤器将确保仅查看前 3 名玩家 (ii) adjusted date 将确保 24 小时挑战提交时间的查看 (iii) first win or loss 将消除同一玩家在同一挑战中的第二次和后续胜利

我希望这也能让你明白一些事情。

你应该得到你想要的视图

或者将日期字段更改为秒以获得这样的视图