AWS QuickSight中如何正确合并多个嵌套ifelse判断语句?
多组ifelse逻辑合并正确写法
报错原因
你之前把5段独立ifelse语句并排写无法运行,核心是不符合ifelse的函数语法规则:标准ifelse为三参数结构,格式为ifelse(判断条件, 条件成立返回结果, 条件不成立返回结果),并排写的语句没有把前一个判断的「不成立返回位」衔接下一层判断,结构不完整就会触发报错。
可用合并公式
目前绝大多数支持ifelse的BI、数据处理工具都支持多条件分支平铺写法,逻辑和你原有单条判断完全一致,匹配对应Group时走组内Yes/No判断,所有组都不匹配时兜底返回原Points值:
ifelse( Group = 'A', ifelse(${A} = 'Yes', ${NewPoints}, {Points}), Group = 'B', ifelse(${B} = 'Yes', ${NewPoints}, {Points}), Group = 'C', ifelse(${C} = 'Yes', ${NewPoints}, {Points}), Group = 'D', ifelse(${D} = 'Yes', ${NewPoints}, {Points}), Group = 'E', ifelse(${E} = 'Yes', ${NewPoints}, {Points}), {Points} )
如果你使用的平台只支持严格三参数嵌套的ifelse,可以用全层级嵌套版本,运行逻辑和上面完全相同:
ifelse( Group = 'A', ifelse(${A} = 'Yes', ${NewPoints}, {Points}), ifelse( Group = 'B', ifelse(${B} = 'Yes', ${NewPoints}, {Points}), ifelse( Group = 'C', ifelse(${C} = 'Yes', ${NewPoints}, {Points}), ifelse( Group = 'D', ifelse(${D} = 'Yes', ${NewPoints}, {Points}), ifelse( Group = 'E', ifelse(${E} = 'Yes', ${NewPoints}, {Points}), {Points} ) ) ) ) )
注意事项
合并时保持变量引用格式和你原有可运行的单条语句一致:组标识变量(如
${A}/${B})带$前缀,{Points}/${NewPoints}的符号不要多写、漏写,避免触发变量不存在类报错。
内容的提问来源于stack exchange,提问作者nehlo_kimchen
相关产品推荐
相关产品推荐

