Loading

无法对同一字段中的不同值进行条件更改格式设置

发布日期: Mar 7, 2024
描述
使用参数在视图中交换字段时,格式设置不会根据所选字段发生变化。

举例来说,使用参数切换度量时,数字格式设置(例如,百分比、小数、币种等)对于所有参数选择将相同。

另举一个例子,使用参数在视图中切换日期级别时,日期格式(例如,MM/dd/yyyy)对于所有参数选择将相同。

Cause

用于基于参数选择切换字段值的计算字段被视为单一字段。因此,无法为参数中使用的单独度量值设置格式。
解决方案
选项 1
如果视图中一次只有一个度量,请使用此选项。
为参数中的每种可能性建立一个计算字段,如下所示。在本例中,我们有一个包含两个选项的参数:货币形式的“Sales”(销售额),以及百分比形式的“Discount”(折扣)
  • 计算字段 1 
IF [<Measure Swapping Parameter>] = 'Sales' THEN [Sales] ELSE NULL END 
  • 计算字段 2
IF [<Measure Swapping Parameter>] = 'Discount' THEN [Discount] ELSE NULL END 

通过度量窗口为这些新字段设置默认数字格式,并将两者都添加到“标签”文本功能区。只会显示参数中选定的字段。

格式设置提示 默认情况下,Tableau Desktop 将在“文本”上的每个度量之间放置一个换行符。为了移除这种额外的空白,请单击“文本”,然后单击“...”按钮打开“编辑标签”对话框,并移除度量之间的所有空白或换行符。

选项 2

创建一个将数值数据转换为文本(亦称字符串)数据的计算,然后向计算中手动添加格式设置。在本例中,我们有一个包含两个选项的参数:货币形式的“Sales”(带有表示千分位的逗号),以及百分比形式的“Discount”(带有一个小数位)
  1. 使用计算字段将度量转换为字符串,然后设置计算字段内字符串的格式。以下公式提供了一个可用于计算字段的模板:
    CASE [<Measure Swapping Parameter>] 
    WHEN 'Discount' THEN LEFT(STR((CEILING(AVG([Discount])*10000))/100),LEN(STR(FLOOR(AVG([Discount])*100)))+2) + "%" 
    WHEN 'Sales' then "$" +
        IF SUM([Sales])>999
        THEN LEFT(STR(FLOOR(SUM([Sales]))),LEN(STR(FLOOR(SUM([Sales]))))-3) + "," + RIGHT(STR(FLOOR(SUM([Sales]))), 3)
        ELSE LEFT(STR(SUM([Sales])), 3)
        END
    END
  2. 在视图中,将参数替换为新创建的计算字段。
(可选)由于字符串函数将按字母顺序对视图中的字段重新排序,因此请右键单击包含 Case 语句的计算字段,并手动将“Months”(月)字段排序为所需顺序。

有关字符串的详细信息,请参见 Tableau 帮助中的字符串函数

选项 3

创建两个工作表,并在仪表板上在两者之间切换。这通常是切换日期的最佳选项。
  1. 创建一个显示“SUM( [Sales] )”的工作表
  2. 右键单击工作表标签,然后选择“复制工作表”。
  3. 在新工作表上,将“SUM( [Sales] )”替换为“SUM( [Profit] ) / SUM( [Sales] )”
  4. 按照为仪表板创建视图(工作表)选择器中的指引进行操作,在仪表板上的工作表之间切换。

 
其他资源
详细信息可在以下第三方链接中找到: 为了表达您对在将来的产品版本中包括此功能的支持,请为以下社区理念投下您的一票:


讨论本文... 反馈论坛
知识文章编号

001473686

附件

swap formats.twbx

1253 KB

 
正在加载
Salesforce Help | Article