首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >if语句函数用于一个值,但用于超过一个验证。

if语句函数用于一个值,但用于超过一个验证。
EN

Stack Overflow用户
提问于 2015-11-29 12:45:06
回答 1查看 741关注 0票数 0

当我在tableau中创建一个计算字段时,我遇到了一些问题。

假设我有这样的数据“城市”变量:1 2 3 4 5 6 7 8

如果1-4变成区域A,5-8变成区域B,1-8变成国家,我想验证这个数字。

这是我计算出来的归档代码

代码语言:javascript
运行
复制
if [City]=1 or [City]=2 or [City]=3 or [City]=4 THEN "Region A"
elseif [City]=5 or [City]=6 or [City]=7 or [City]=8 THEN "Region B"
elseif [City]=1 or [City]=2 or [City]=3 or [City]=4 or [City]=5 or [City]=6 or 
[City]=7 or [City]=8 THEN "National"
END

但是在我创建了这个计算字段之后,只有“区域A”、“区域B”和“空区域”出现了。我的想法是,代码可能在区域上与National (或者不是?)重叠。

我怎么才能解决这个问题?当我的数据只有1-8的范围时,这个空值从何而来?

谢谢

编辑:

大家好,我只想确认一下,我希望它看起来像一个计算字段,当我单击“区域A”时,它将显示城市1-4的组合,当我单击“区域B”时,它将显示城市5-6的组合,当我单击"National“时,它将显示城市1-8的组合。

EN

回答 1

Stack Overflow用户

发布于 2015-11-29 19:55:26

编辑:在注释中澄清之后,您需要的是一个参数。创建一个可以采用“区域A”、“区域B”和“国家”值的值。然后创建一个计算字段(我没有使用所有的城市值来提高其可读性):

代码语言:javascript
运行
复制
CASE [parameter]:
WHEN "Region A" THEN IF [city] = 1 or [city] = 2 THEN [value] END
WHEN "Region B" THEN IF [city] = 3 or [city] = 4 THEN [value] END
WHEN "National" THEN [value] END
END

使用该参数,您现在可以选择分组。对于值,您需要插入要显示的列(即。销售)。如果城市有一个按照您的标准计算的值,它将用值填充新的计算字段,如果不是,它将是空的,如果它是"National“,那么它将始终使用您定义的值。

旧的答案:

听起来,您想要创建一个层次结构,以显示城市、地区和国家级别的数据。如果是这样的话,您有几个选择:

  1. 您有实际的城市名称,而不是城市列中的1、2、3:如果将该列定义为地理角色,Tableau将自动创建hirachy。
  2. 您有1,2,3,但只有一个国家:使用您已经拥有的公式创建一个字段Region,但不要使用最后一个ELSEIF: 如果City=1、City=2、City=3或City=4,则“THEN”--如果City=5或City=6或City=7或City=8 --则“THEN”结束

然后创建第二个计算字段Country,只需在维度中给它'National'值,现在就可以通过在country字段上拖放区域和城市字段来创建一个hirachy。

  1. 您有1,2,3和几个国家():用这个公式替换第二个计算字段中的值,并创建与2相同的参数。 如果City=1,City=2,City=3,City=4,City=5,City=6,City=7或City=8,那么"Country1“,如果City=9,City=10,City=11,则Country2结束

关于这一点,还有几点说明:

  • 您可能希望使用CASE而不是那么多的IF,因为它更易于阅读和更好地维护。
  • 你可能想要基于地区,而不是城市,因为你将只需要维护你的原始例子的eg 2区域,而不是8个城市。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33982903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档