在包含函数的画面中使用 if 语句

using if statements in tableau on a contains function

假设我有美国每个州/城市的城市人口。我想将每个人口超过 200 万的城市标记为大城市。那么如果一个状态包含 "big city",我想将该状态标记为 "big state"。我做了一个计算字段:

if Pop>2000000 then "big city" else "small city" end
这很好用。

现在,当我尝试为状态创建一个计算字段时,我尝试了这个:

if contains([big city],"big") then "big state" else "small state" end

这几乎可行,但是当我只想要 1 个值(大状态或小状态)时,我会为每个状态获取多个值。如何阻止画面创建多个值?

state 默认设置为 "small state"

当您检查城市人口时,如果找到 "big city",请将 state 设置为 "big state"

if Pop > 2000000
    then "big city"
         "big state"
else
    "small city"

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

假设您的 big_city、small_city 计算是一个名为 City_Size

的计算字段

现在,第一个计算字段将根据 City_Size 的值为每一行分配 1 或 0。将其命名为 is_big_state

if City_Size = 'big' then
    1
else
    0
end

现在将这个计算字段用于另一个计算,称为State_type

IIF(Max(City_Size) = 1, "Big State", "Small State")

编辑:您可以将它们合二为一:

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