简化一系列IF那么

时间:2018-03-22 11:30:16

标签: powerbi powerquery

我正在尝试做的事情可以用这个伪代码来解释: 如果variable_text1为“1”,“2”,“3”,则在名为rating的新列下放“1-3”

非常简单,但以“愚蠢”的方式写它很长

Table.AddColumn(#"Added cluster_rating", "rating", each if [variable_text1] = "1" then "1-3" else
if [variable_text1] = "2" then "1-3" else
if [variable_text1] = "3" then "1-3" else
null)

问题是当有很多可能的文本变量可供选择时...是否有更聪明的方式来编写它?

2 个答案:

答案 0 :(得分:1)

在PowerBI中实现计算列可能更容易:

IF [variable_text1] In {"1", "2", "3"}, "1-3"

不需要使用null,它是错误结果的默认条件。

[编辑]:

如果您必须使用电源查询,请尝试;

if List.Contains({"1","2","3"}, [variable_text1]) then "1-3" else null

答案 1 :(得分:0)

如何将此作为自定义列使用?

if Number.FromText([variable_text1]) >= 1 and
   Number.FromText([variable_text1]) <= 3
then "1-3"
else null