Tableau中已过滤行的运行总和

问题描述

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

enter image description here

enter image description here

和具有与每个挑战相关的积分的另一个表-

enter image description here

我如何绘制一段时间内比赛中前3名玩家所获得的连续积分的图表?这里要注意的是,如果竞赛中有一个挑战(例如,玩家A的挑战#17)有多个成功的提交,那么我只需要考虑第一个成功的提交。

编辑:

Dummy Data

所需的输出

enter image description here

解决方法

我正在提出一些假设的解决方案/答案-

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

第1步 创建CF,以按日历日期-adjusted date调整日期/时间

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

请注意,我已经添加了7个小时,以使最后一个日历日期/时间第二天提交为00 AM。

步骤2 创建另一个CF win_loss

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

步骤3 创建另一个CF game points

[win_loss]*[Points (Points)]

第4步,创建另一个CF first win or loss,因为(不必担心在这里丢失)

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

第5步,使用以下公式在TOP-3的“玩家”字段上创建一个集合(选择前3个),

sum(
IF [first win or loss]= TRUE
then [game points] END)

第6步通过拖动构建视图

  • setMDY(adjusted date)first win or loss在过滤器架子/卡片上
  • 在上下文中添加mdy过滤器
  • [date]exact datediscreet到列
  • 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将消除同一玩家因相同挑战而获得的第二次和以后的胜利

我希望这也会使您明白。

您应该得到想要的视图

enter image description here

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

enter image description here