如何根据用户在 Tableau 中选择的日期控制条形图中的条数
How to control number of bars in a bar chart based on date selection by user in Tableau
我有一个日期参数,它有一个星期分割。
当我 select 第 4 周时,我需要 4 个条形图(每周一个,即第 1 周、第 2 周、第 3 周、第 4 周)在包含销售数据总和的图表中。
当我 select 第 3 周时,我需要在包含销售数据总和的图表中显示 3 个条形图(每周一个,即第 1 周、第 2 周、第 3 周)
等等...所以当我 select 第 1 周时,我的图表中将只有一个柱状图。
我尝试将 DATEDIFF 与 last() 一起使用,但我无法控制条形图中的条数
以下是适合我的方法:
- 根据您的日期字段创建一个参数,将其命名为时间范围(或其他名称),数据类型:日期,允许值:全部
- 使用以下公式创建计算字段
If [Date] < [Timeframe] then [Value] ELSE null END
[Date] 是您的日期字段,[Value] 是您要显示的原始度量
在图表中使用新的计算字段而不是原始度量
右键单击创建的参数并选择“显示参数控件”
现在,当您在参数控件中更改日期时,条形图的数量将调整为仅显示截至该日期的周数。
它应该是这样的:
编辑:
如果您想要一个 "All" 选项,您可以转到参数设置,选择 "List" 作为 "allowable Values" 并添加日期字段中的值。
然后您只需手动创建一个附加项,其值为“01/01/2011”或任何其他遥远的未来日期)并显示为 "All"。
然而,这仅在您有静态数据时有效!如果您更新源并添加了新的、更新的值,它们将不会出现在列表中,因为您明确指定了要添加的值可用。
我还意识到以下几点:
如果你像我解释的那样做,你将能够选择特定的日子,这可能会导致同一周不同日子的不同图表。也就是说,如果我选择同一周的星期二或星期五,虽然整个星期的销售额明显保持不变,但我会有不同大小的条形图。如果这适合您的用例,那就去做吧。否则,您应该使用 DATETRUNC("week", [date])
创建另一个计算字段并将其用于参数和计算。这样你就只能选择星期几,所以无论你选择一周中的哪一天,条形图总是具有相同的高度。
我有一个日期参数,它有一个星期分割。 当我 select 第 4 周时,我需要 4 个条形图(每周一个,即第 1 周、第 2 周、第 3 周、第 4 周)在包含销售数据总和的图表中。 当我 select 第 3 周时,我需要在包含销售数据总和的图表中显示 3 个条形图(每周一个,即第 1 周、第 2 周、第 3 周) 等等...所以当我 select 第 1 周时,我的图表中将只有一个柱状图。
我尝试将 DATEDIFF 与 last() 一起使用,但我无法控制条形图中的条数
以下是适合我的方法:
- 根据您的日期字段创建一个参数,将其命名为时间范围(或其他名称),数据类型:日期,允许值:全部
- 使用以下公式创建计算字段
If [Date] < [Timeframe] then [Value] ELSE null END
[Date] 是您的日期字段,[Value] 是您要显示的原始度量
在图表中使用新的计算字段而不是原始度量
右键单击创建的参数并选择“显示参数控件”
现在,当您在参数控件中更改日期时,条形图的数量将调整为仅显示截至该日期的周数。
它应该是这样的:
编辑: 如果您想要一个 "All" 选项,您可以转到参数设置,选择 "List" 作为 "allowable Values" 并添加日期字段中的值。 然后您只需手动创建一个附加项,其值为“01/01/2011”或任何其他遥远的未来日期)并显示为 "All"。 然而,这仅在您有静态数据时有效!如果您更新源并添加了新的、更新的值,它们将不会出现在列表中,因为您明确指定了要添加的值可用。
我还意识到以下几点:
如果你像我解释的那样做,你将能够选择特定的日子,这可能会导致同一周不同日子的不同图表。也就是说,如果我选择同一周的星期二或星期五,虽然整个星期的销售额明显保持不变,但我会有不同大小的条形图。如果这适合您的用例,那就去做吧。否则,您应该使用 DATETRUNC("week", [date])
创建另一个计算字段并将其用于参数和计算。这样你就只能选择星期几,所以无论你选择一周中的哪一天,条形图总是具有相同的高度。