Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 在contains函数的tableau中使用if语句_If Statement_Contains_Tableau Api - Fatal编程技术网

If statement 在contains函数的tableau中使用if语句

If statement 在contains函数的tableau中使用if语句,if-statement,contains,tableau-api,If Statement,Contains,Tableau Api,假设我有美国每个州/市的城市人口。我想把每个人口超过200万的城市都列为一个大城市。然后,如果一个州包含一个“大城市”,我想将该州标记为“大州”。我做了一个计算字段: 如果Pop>2000000,则“大城市”或“小城市”结束 这个很好用 现在,当我尝试为状态创建计算字段时,我尝试了以下方法: 如果包含([大城市],“大”),则“大州”或“小州”结束 这几乎是可行的,但当我只需要一个值时,每个状态都有多个值,无论是大状态还是小状态。如何阻止tableau创建多个值?默认情况下,将状态设置为“小状态

假设我有美国每个州/市的城市人口。我想把每个人口超过200万的城市都列为一个大城市。然后,如果一个州包含一个“大城市”,我想将该州标记为“大州”。我做了一个计算字段:

如果Pop>2000000,则“大城市”或“小城市”结束
这个很好用

现在,当我尝试为状态创建计算字段时,我尝试了以下方法:

如果包含([大城市],“大”),则“大州”或“小州”结束


这几乎是可行的,但当我只需要一个值时,每个状态都有多个值,无论是大状态还是小状态。如何阻止tableau创建多个值?

默认情况下,将
状态设置为
“小状态”

当您检查城市人口时,如果您发现一个
“大城市”
,请将
州设置为
“大州”


您可以尝试使用涉及两个计算字段的方法

假设您的大城市、小城市计算是一个名为
city\u Size

现在,第一个计算字段将根据
City\u Size
的值为每行分配1或0。将其命名为
is\u big\u state

if City_Size = 'big' then
    1
else
    0
end
现在将此计算字段用于另一个计算,称为
State\u type

IIF(Max(City_Size) = 1, "Big State", "Small State")
编辑:您可以将两者合并为一个:

IIF(Max(iif(City_Size = 'big', 1, 0)) = 1, "Big State", "Small State")

你好,布鲁斯,谢谢你的回复。我不相信你的等式在表中是有效的,在你的“then”陈述之后有一个逻辑错误(你不能像那样把大城市和大州放在一起)。另外,这是一个更复杂问题的简单版本,因此我无法使用解决方法:)
如果包含([big city],“big”),那么“big state”或者“small state”
-从代码中删除
或者“small state”
怎么样?这样,大州就不会分为大州和小州。因为我还想给没有大城市的州贴上标签。。。我的实际代码稍微复杂一些,它更像是如果值>7,那么x elseif值>4,然后y else z。。。所以我只是想把逻辑放在适当的位置来开发其他东西:)
IIF(Max(iif(City_Size = 'big', 1, 0)) = 1, "Big State", "Small State")