[英]Using Tableau to do VLookup
如果这很明显,Tableau 的新手非常抱歉,但我进行了一次狩猎,但找不到/理解任何东西。 所以我有一家蛋糕店,我想知道人们是否以相同的顺序购买了 éclairs 和 Eccles 蛋糕
ORDER ID item 0001 éclair 0001 iced bun 0001 Eccles cake 0002 éclair 0002 iced bun 0003 éclair 0003 Eccles cake
我想要的输出如下:
ORDER ID item éclair? 0001 éclair 0 0001 iced bun 0 0001 Eccles cake 1 0002 éclair 0 0002 iced bun 0 0003 éclair 0 0003 Eccles cake 1
我认为它需要像查找或帮助列这样的东西?!
作为参考,我有一个数据集(一个 csv 文件),所以我猜我不能对其运行 SQL 查询?
这就是我能够做到这一点的方法 - 可能有一种我不熟悉的更好方法。 尽管如此...
脚步:
在工作表中,将Order Id
和Item
添加到Rows
部分。
复制您的数据源(右键单击 > 复制)。 我将原件称为A
,将副本称为B
。
取消链接Item
字段。 这是通过单击字段名称右侧的橙色链链接图标来完成的。 灰色链接是您想要的。 保持Order Id
字段链接(橙色)。
留在同一张表上,单击数据源B
并创建这两个计算字段: Cake_Flag: MAX(IF [Item] = 'Eccles cake' THEN 1 ELSE 0 END)
Eclair_Flag: MAX(IF [Item] = 'éclair' THEN 1 ELSE 0 END)
通过选择它返回到数据源A
并创建这个新的计算字段:éclair?: IF ATTR([Item]) = 'Eccles cake' AND [Data Source B].[Eclair Flag] = 1 AND [Data Source B].[Cake Flag] = 1 THEN 1 ELSE 0 END
[Data Source B]
应替换为B
数据源的名称。
放置新的计算字段éclair?
在文本卡中。
结果:
请参阅设置差异:在 Tableau Desktop 中为两个组查找不同的成员,以了解几种可能方法中的一种。 关键是编写一个聚合计算字段,用于计算订单 ID 是否包含两个感兴趣的项目。
您可以在集合中或直接在订单 ID 为维度的视图中使用该计算。
一个例子是:
count(if item = "eclair" then 1 end) > 0 and count(if item = "Eccles cake" then 1 end) > 0
对于具有至少一个 eclair 项目和至少一个 Eccles 蛋糕项目的订单,此(聚合)计算返回 true,对于其他订单返回 false。
为此,您需要订单 ID 作为视图中的维度,而不是项目,以便计算一次应用于订单中的所有项目。 这回答了您提出的问题,但每个订单显示一行,而不是每个订单/项目一行。
如果您确实需要您指定的确切输出形式,则将此计算转换为 LOD 计算,例如:
{ FIXED [ORDER ID] : count(if item = "eclair" then 1 end) > 0 and count(if item = "Eccles cake" > 0 then 1 end) }
然后,您在每个订单 ID/项目旁边显示一列,以指示该订单是否同时包含泡芙和蛋糕。 (这也不完全是您显示为所需输出的内容)或使用此新字段与当前项目一起定义最终计算,当且仅当项目是蛋糕并且订单包含两者时才为 1。
这评估为真和假。 如果需要,我认为您可以转换为 1 和 0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.