跳到主要内容

Power Query: If 语句 - 嵌套 if 和多个条件

作者:晓阳 最后修改时间:2022-12-15

在 Excel 中 Power QueryIF 语句是最流行的函数之一,用于检查条件并根据结果是 TRUE 还是 FALSE 返回特定值。 这个if语句和Excel的IF函数有一些区别。 在本教程中,我将为您介绍这个 if 语句的语法以及一些简单和复杂的示例。

基本 if 语句语法 Power Query

Power Query 使用条件列的 if 语句

Power Query 编写M代码的if语句


基本 if 语句语法 Power Query

In Power Query,语法为:

= 如果 logical_test 那么 value_if_true 否则 value_if_false
  • 逻辑测试:您要测试的条件。
  • 值_if_true:结果为真时返回的值。
  • 值_if_false:如果结果为 FALSE,则返回值。
备注: Power Query if 语句区分大小写,if、then 和 else 必须小写。

在 Excel 中 Power Query,有两种方法可以创建这种类型的条件逻辑:

  • 在一些基本场景下使用条件列功能;
  • 为更高级的场景编写 M 代码。

在下一节中,我将讨论使用此 if 语句的一些示例。


Power Query 使用条件列的 if 语句

 示例 1:基本 if 语句

这里我就介绍一下这个if语句的使用方法 Power Query。 例如,我有以下产品报告,如果产品状态为旧,则显示 50% 折扣; 如果产品状态为“新品”,则显示 20% 折扣,如下图所示。

1. 从工作表中选择数据表,然后在 Excel 2019 和 Excel 365 中,单击 时间 > 从表/范围,请参见屏幕截图:

备注:在 Excel 2016 和 Excel 2021 中,单击 时间 > 从表,请参见屏幕截图:

2。 然后,在打开 Power Query 编者 窗口中,单击 添加列 > 条件列,请参见屏幕截图:

3。 在弹出 添加条件列 对话框,请执行以下操作:

  • 新列名称:为新列输入名称;
  • 然后,指定您需要的条件。 例如,我将指定 如果 Status 等于 Old,则为 50%,否则为 20%;
提示:
  • 栏名:用于评估您的 if 条件的列。 在这里,我选择状态。
  • 操作者: 要使用的条件逻辑。 选项将根据所选列名称的数据类型而有所不同。
    • 文本:以、不以、等于、包含等开头。
    • 数值:等于、不等于、大于或等于等。
    • 日期:之前,之后,等于,不等于等。
  • :用于比较您的评估的特定值。 它与 Column Name 和 Operator 一起构成一个条件。
  • 输出:满足条件时返回的值。
  • 其他:条件为假时返回的另一个值。

4。 然后,点击 OK 按钮返回 Power Query 编者 窗户。 现在,一个新的 已优惠 添加了列,请参见屏幕截图:

5. 如果要将数字格式化为百分比,只需单击 ABC123 从的图标 已优惠 列标题,然后选择 百分比 根据需要,请参见屏幕截图:

6. 最后请点击 主页 > 关闭并加载 > 关闭并加载 将此数据加载到新工作表。


 示例 2:复杂的 if 语句

使用此条件列选项,您还可以将两个或多个条件插入到 添加条件列 对话。 请这样做:

1. 选择数据表,然后转到 Power Query 编者 通过单击窗口 时间 > 从表/范围. 在新窗口中,单击 添加列 > 条件列.

2。 在弹出 添加条件列 对话框,请执行以下操作:

  • 将新列的名称输入到 新列名称 文本框;
  • 在第一个条件字段中指定第一个条件,然后单击 添加条款 按钮以根据需要添加其他条件字段。

3. 完成条件后,单击 OK 按钮返回 Power Query 编者 窗户。 现在,您将获得一个包含您需要的相应结果的新列。 看截图:

4. 最后请点击 主页 > 关闭并加载 > 关闭并加载 将此数据加载到新工作表。


Power Query 编写M代码的if语句

通常情况下,Conditional Column 对一些基本场景很有帮助。 有时,您可能需要使用具有 AND 或 OR 逻辑的多个条件。 在这种情况下,对于更复杂的情况,您必须在自定义列中编写 M 代码。

 示例 1:基本 if 语句

以第一个数据为例,如果产品状态为Old,则显示50%的折扣; 如果产品状态为新品,则显示 20% 的折扣。 编写 M 代码时,请按照以下步骤操作:

1。 选择表,然后单击 时间 > 从表/范围Power Query 编者 窗口。

2. 在打开的窗口中,单击 添加列 > 自定义列,请参见屏幕截图:

3。 在弹出 自定义列 对话框,请执行以下操作:

  • 将新列的名称输入到 新列名称 文本框;
  • 然后,输入这个公式: 如果 [Status] = "Old " then "50% " else "20% "自定义列 公式 框。

4。 然后,点击 OK 关闭此对话框。 现在,您将根据需要获得以下结果:

5。 最后点击 主页 > 关闭并加载 > 关闭并加载 将此数据加载到新工作表。


 示例 2:复杂的 if 语句

嵌套 if 语句

通常,为了测试子条件,您可以嵌套多个 if 语句。 例如,我有下面的数据表。 如果产品是“连衣裙”,则给予原价50%的折扣; 如果产品是“毛衣”或“连帽衫”,则给予原价 20% 的折扣; 其他产品保持原价。

1. 选择数据表,然后单击 时间 > 从表/范围Power Query 编者 窗口。

2. 在打开的窗口中,单击 添加列 > 自定义列。 在开 自定义列 对话框,请执行以下操作:

  • 将新列的名称输入到 新列名称 文本框;
  • 然后,将下面的公式输入到 自定义列 公式 框。
  • = if [Product] = "Dress" then [Price] * 0.5 else
    如果 [Product] = "Sweater" 那么 [Price] * 0.8 else
    如果 [Product] = "Hoodie" 那么 [Price] * 0.8
    其他 [价格]

3。 然后,单击 OK 按钮返回 Power Query 编者 窗口,您将获得一个包含所需数据的新列,请参见屏幕截图:

4。 最后点击 主页 > 关闭并加载 > 关闭并加载 将此数据加载到新工作表。


带 OR 逻辑的 If 语句

OR 逻辑执行多个逻辑测试,如果任何逻辑测试为真,则返回真实结果。 语法是:

= 如果逻辑测试 1 或逻辑测​​试 2 或 … 那么 value_if_true else value_if_false

假设,我有下表,现在,我想要一个新的列显示为:如果产品是“Dress”或“T-shirt”,那么品牌是“AAA”,其他产品的品牌是“BBB”。

1. 选择数据表,然后单击 时间 > 从表/范围Power Query 编者 窗口。

2. 在打开的窗口中,单击 添加列 > 自定义列,在打开 自定义列 对话框,请执行以下操作:

  • 将新列的名称输入到 新列名称 文本框;
  • 然后,将下面的公式输入到 自定义列公式 框。
  • = 如果 [Product] = "Dress" 或 [Product] = "T-shirt" 那么 "AAA"
    否则“BBB”

3。 然后,单击 OK 按钮返回 Power Query 编者 窗口,您将获得一个包含所需数据的新列,请参见屏幕截图:

4。 最后点击 主页 > 关闭并加载 > 关闭并加载 将此数据加载到新工作表。


If 语句与逻辑

AND 逻辑在单个 if 语句中执行多个逻辑测试。 所有测试都必须为真才能返回真实结果。 如果任何测试为假,则返回假结果。 语法是:

= 如果逻辑测试 1 和逻辑测试 2 和 … 那么 value_if_true else value_if_false

以上面的数据为例,我想要一个新的列显示为:如果产品是“Dress”并且订单大于300,则给予原价50%的折扣; 否则保持原价。

1. 选择数据表,然后单击 时间 > 从表/范围Power Query 编者 窗口。

2. 在打开的窗口中,单击 添加列 > 自定义列。 在开 自定义列 对话框,请执行以下操作:

  • 将新列的名称输入到 新列名称 文本框;
  • 然后,将下面的公式输入到 自定义列公式 框。
  • = 如果 [Product] = "Dress" 并且 [Order] > 300 那么 [Price]*0.5
    其他 [价格]

3。 然后,点击 OK 按钮返回 Power Query 编者 窗口,您将获得一个包含所需数据的新列,请参见屏幕截图:

4. 最后,您应该通过单击将此数据加载到新工作表中 主页 > 关闭并加载 > 关闭并加载.


具有 OR 和 AND 逻辑的 If 语句

好了,前面的例子我们就很容易理解了。 现在,让我们让它变得更难。 您可以组合 AND 和 OR 来形成您可以想象的任何条件。 在这种类型中,您可以在公式中使用括号来定义复杂的规则。

同样以上面的数据为例,假设我要新建一个列显示为:如果商品是“Dress”,订单大于300,或者商品是“Trousers”,订单大于300,则显示“A+”,否则显示“其他”。

1. 选择数据表,然后单击 时间 > 从表/范围Power Query 编者 窗口。

2. 在打开的窗口中,单击 添加列 > 自定义列。 在开 自定义列 对话框,请执行以下操作:

  • 将新列的名称输入到 新列名称 文本框;
  • 然后,将下面的公式输入到 自定义列公式 框。
  • =if ([Product] = "Dress" and [Order] > 300 ) 或者
    ([Product] = "裤子" and [Order] > 300 )
    然后是“A+”
    其他“其他”

3。 然后,点击 OK 按钮返回 Power Query 编者 窗口,您将获得一个包含所需数据的新列,请参见屏幕截图:

4. 最后,您应该通过单击将此数据加载到新工作表中 主页 > 关闭并加载 > 关闭并加载.

提示:
在自定义列公式框中,您可以使用以下逻辑运算符:
  • = : 等于
  • <> :不等于
  • > :大于
  • >= :大于或等于
  • < :小于
  • <= :小于或等于

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations