【问题标题】:Select value in table in tableau在 tableau 中的表中选择值
【发布时间】:2015-11-04 19:46:30
【问题描述】:

我对 Tableau 还很陌生,所以请耐心等待 :)

我有两张桌子, 表一 (T1) 包含我的所有数据,第一行是 Year-Week,如 2014-01、2014-02 等。关于这个的快速问题,我如何让 Tableau 将其视为日期,而不是字符串?

T1 包含大量数据,如下所示:

 YearWeek   Spend   TV   Movies
 2014-01    5000    42   12
 2014-02    4800    41   32
 2014-03    2000    24   14
 ....
 2015-24    7000    45   65

我有另一个表 (T2),其中包含有关我想与 T1 列相乘的一些值的信息,T2 看起来像:

NAME         TV    Movies
Weight       2     5
Response     6     3
Ad           7     2
Version      1     0

我想创建一个计算字段 (TVNEW),它从 TV 的 T1 中获取值,并将 Response(TV) 添加到它,并将其与权重 (TV) 相乘, 所以是这样的:

(T1[TV]+T2[TV[Response]])*T2[TV[Weight]]

行看起来像这样:

 (42+6)*2
 (41+6)*2
 (24+6)*2
 ...
 (45+6)*2

所以计算应该从T2中取一个特定的值,对T1[TV]中的每个值进行计算

提前致谢

【问题讨论】:

    标签: date select tableau-api


    【解决方案1】:

    您的问题的简单答案是:不,不是本地的。 您想要做的听起来像是访问二维数组,而这并不是 Tableau 的真正意图。此外,您有 2 个完全独立的表,没有共同的 JOIN 属性。 Tableau 不适合那样工作。

    我想不出一种动态提取该值的方法(我假设您的示例只是一个示例;在您的情况下,您不只是在计算中使用两个值,否则您可以创建 2您可以在计算字段中使用的参数

    当我查看您的表格时,您似乎可以转置并加入它们,理想情况下它们看起来像这样:(编辑:评论说转置不是一种选择)

    Medium  Value   YearWeek    Spend
    Movies  12      2014-01     5,000
    Movies  32      2014-02     4,000
    Movies  14      2014-03     2,000
    Movies  65      2015-24     7,000
    TV      42      2014-01     5,000
    TV      41      2014-02     4,000
    TV      24      2014-03     2,000
    TV      45      2015-24     7,000
    

    Medium  Weight  Response    Ad  Version
    TV      2       6           7   1
    Movies  5       3           2   0
    

    根据您使用的系统,您已经可以将其放在一个 CSV 或表格中,这样您就不必在 Tableau 中进行 JOIN。

    现在您可以在 Tableau 中本地创建第一个表(从 9.0 版开始),如果您打开数据源,在数据源预览中选择 TV 和 Movies 列,单击小三角形,然后单击 枢轴。 (此时您还可以选择 YearWeek 列,单击三角形并 Split 以创建单独的字段 Year 和 Week。您将无法为其分配类型 date不要给你任何不利。)

    对于第二张表,我可以想到两种可能性:

    1. 您可以使用可以转置表格的工具(Excel 可以做到这一点,请参阅:Convert matrix to 3-column table ('reverse pivot', 'unpivot', 'flatten', 'normalize') 完成后,您可以在 Tableau 中打开它并在 Medium 上连接两个表格
    2. 您可以根据媒介创建计算字段:

      Field: Weight
      CASE [Medium] 
        WHEN 'TV' THEN 2
        WHEN 'Movies' THEN 5
      END
      

      相应地用于响应、广告和版本
      显然,只有当您真的只需要少量值时,这才是合理的。

    完成后,只需创建一个计算字段

    ([Value]+[Response])*[Weight]
    

    这将计算您表格的所有值

    【讨论】:

    • 感谢您的回答,虽然我对更改两张表的布局不感兴趣,因为 T1s 布局正是我稍后需要进一步计算的。有没有办法在不改变 T1 的情况下做到这一点?
    • 啊,TVNEW 是您要计算的唯一值吗?我想我读错了这个问题。
    • 在这种情况下,我唯一的想法是使用您的值创建 2 个参数,这不会是动态的,但这是我看到的唯一可能性。使用该设置动态访问特定值似乎是不可能的。
    • 实际上应该为每个电视、电影(以及收音机、显示器等)计算它。但我只是做了一个简化的例子。嗯,好吧,我只是希望找到一个动态解决方案,这样我就可以用新值更新 T2,而无需更改任何其他内容。参数似乎不可能
    • 那么是什么阻止您转置表格?您也许也可以对转置表做您想做的事情。
    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多