0

我在 Tableau 服务器中有下表,使用 USERNAME() 将返回“员工”值。

+----------+---------+----------+
| Employee | Manager | Job Role |
+----------+---------+----------+
| jdoe     | hwu     | Analyst  |
| anon     | hwu     | IT       |
| jlaw     | hwu     | Analyst  |
| kreaves  | bpitt   | Analyst  |
| jlopez   | bpitt   | IT       |
| mmoss    | bpitt   | IT       |
+----------+---------+----------+

目标:根据参数找到与自己相似的用户。参数值 - 经理、工作角色。

示例:我的 USERNAME() 是 jdoe。当我选择参数值“经理”时,tableau 过滤并仅给出“hwu”下的员工结果,如下所示。

+----------+
| Employee |
+----------+
| jdoe     |
| anon     |
| jlaw     |
+----------+

Similarly, when Job Role is selected, it filters to a list of users with the job role 'Analyst', as shown below.

+----------+
| Employee |
+----------+
| jdoe     |
| jlaw     |
| kreaves  |
+----------+

我知道应该有一个使用 LOD 计算的简单解决方案,但我不知道如何处理这个问题!

4

1 回答 1

0

创建一个使用 UserName()、您的参数和任何需要生成布尔值的字段的计算字段。使用该字段过滤感兴趣的行。

例如,创建一个名为 [Value of Interest] 的计算字段 if [My Param] = "Manager" then [Manager] else [Job Role] end

另一个名为 [My Value of Interest]{ min(if [Employee] = username() then [Value of Interest] end) }的计算字段是您的 LOD 计算。

现在您可以在过滤器架子上放置一个 calc 来测试是否[My Value of Interest] = [Value of Interest]

我不在可以测试这个的地方,但它应该让你开始

于 2016-12-12T18:02:48.523 回答