考虑表
col1 | col2 | col3 1 | x | ER 1 | x | IG 1 | x | C 1 | y | ER 1 | y | ER 2 | y | IG 2 | y | C 2 | y | ER 2 | z | ER 2 | z | IG
我需要一个计算列,如果col3上的col1和col2组中至少有一个'C',则表示'成功',否则'失败'。
所以我的新表必须如下:
col1 | col2 | col3 | calculated_col 1 | x | ER | success 1 | x | IG | success 1 | x | C | success 1 | y | ER | fail 1 | y | ER | fail 2 | y | IG | success 2 | y | C | success 2 | y | ER | success 2 | z | ER | fail 2 | z | IG | fail
即:
答案 0 :(得分:0)
您可以使用Intersect
OVER函数根据您定义的层次结构(在本例中为col1> col2)收集单元格中的值。
以下表达式产生您想要的结果:
If(
Find("C", UniqueConcatenate([col3]) OVER (Intersect([col1], [col2]))) > 0,
"success","fail"
)
它不是特别健壮,但是:如果col3
中包含“C
”的任何其他值,则此表达式将评估为“成功”!