KutoolsforOffice — 一套方案,五大工具。事半功倍。

Power Query:If 语句 —— 嵌套 if 与多条件

作者小杨修改日期

在 Excel Power Query 中,IF 语句是最常用的功能之一,用于判断条件,并根据结果为 TRUE 或 FALSE 返回相应的值。该 IF 语句与 Excel 中的 IF 函数存在一些差异。本教程将为您介绍其语法,并提供若干简单和复杂的示例。

Power Query 中基本 if 语句的语法

在 Power Query 中使用条件列实现 if 语句

通过编写 M 代码在 Power Query 中实现 if 语句


Power Query 中基本 if 语句的语法

在 Power Query 中,语法如下:

= if logical_test then value_if_true else value_if_false
  • logical_test:您要测试的条件。
  • value_if_true:当条件为 TRUE 时返回的值。
  • value_if_false:当结果为 FALSE 时返回的值。
注意:Power Query 的 if 语句区分大小写,if、then 和 else 必须为小写。

在 Excel Power Query 中,有两种方式创建此类条件逻辑:

  • 使用“条件列”功能处理一些基本场景;
  • 编写 M 代码,轻松应对更高级的场景。

接下来,我将为您展示一些使用该 if 语句的实用示例。


在 Power Query 中使用条件列实现 if 语句

示例 1:基本 if 语句

在这里,我将为您介绍如何在 Power Query 中使用 if 语句。例如,我有一份如下所示的产品报告:当产品状态为“旧”时,显示 50% 折扣;当产品状态为“新”时,显示 20% 折扣(如下图所示)。

一张截图,展示在 Excel 中添加了产品状态列和折扣列的产品报告

1. 从工作表中选择数据表,然后在 Excel 2019 和 Excel 365 中,单击数据> 来自表格/区域,参见截图:

一张 Excel 2019 和 Excel 365 中“数据”选项卡的截图,其中“来自表格/区域”选项被高亮显示

注意:在 Excel 2016 和 Excel 2021 中,单击数据> 来自表格,参见截图:

一张 Excel 2016 和 Excel 2021 中“数据”选项卡的截图,其中“来自表格”选项被高亮显示

2. 然后,在打开的 Power Query 编辑器窗口中,单击添加列 > 条件列,参见截图:

一张 Power Query 编辑器的截图,其中“添加列”和“条件列”选项被高亮显示

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

  • 新列名称:为新列输入一个名称;
  • 然后,指定所需的条件。例如,我将指定:如果“状态”等于“旧”,则返回 50%;否则返回 20%
提示:
  • 列名称:用于评估 if 条件的列。此处我选择“状态”。
  • 运算符:用于设定条件逻辑。选项将根据所选“列名称”的数据类型动态变化。
    • 文本:支持“以……开头”、“不以……开头”、“等于”、“包含”等多种条件。
    • 数字:支持等于、不等于、大于或等于等条件。
    • 日期:早于、晚于、等于、不等于等条件。
  • :用于比较评估结果的具体数值,与“列名称”和“运算符”共同构成一个条件。
  • 输出:条件满足时返回的值。
  • 否则:当条件不成立时返回的另一值。

一张 Power Query 中“添加条件列”对话框的截图,正在设置条件

4. 然后,单击确定按钮,返回到 Power Query 编辑器窗口。此时,一个名为折扣的新列已成功添加,参见截图:

一张 Power Query 编辑器的截图,显示已添加新的“折扣”列

5. 如果要将数字格式化为百分比,只需单击折扣列标题处的 ABC 123 图标(),然后根据需要选择百分比,参见截图:

一张点击 ABC123 图标将“折扣”列格式化为百分比的截图

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

一张 Power Query 中“关闭并加载”选项的截图,用于将数据加载到工作表中


示例 2:复杂 if 语句

使用“条件列”选项,您还可以在添加条件列对话框中插入两个或更多条件。操作步骤如下:

1. 选择数据表,单击数据> 来自表格/区域,进入 Power Query 编辑器窗口;在新窗口中,单击添加列> 条件列

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

  • 新列名称文本框中输入新列的名称;
  • 在第一个条件字段中指定首个条件,然后点击添加子句按钮,即可按需添加更多条件字段。

一张 Power Query 中“添加条件列”对话框的截图,其中设置了多个条件

3. 完成条件设置后,单击确定按钮,即可返回 Power Query 编辑器窗口,并立即获得一个包含所需结果的新列。参见截图:

一张 Power Query 编辑器的截图,显示应用了多个条件后的新列

4. 最后,请单击开始 > 关闭并加载 > 关闭并加载,将此数据加载到新工作表中。


通过编写 M 代码在 Power Query 中实现 if 语句

通常,“条件列”适用于一些基础场景。但当您需要结合 AND 或 OR 逻辑处理多个条件时,就必须在“自定义列”中编写 M 代码,以应对更复杂的场景。

示例 1:基本 if 语句

以第一组数据为例,若产品状态为“旧”,则显示 50% 折扣;若产品状态为“新”,则显示 20% 折扣。编写 M 代码时,请按以下步骤操作:

1. 选择表格,然后单击数据> 从表格/区域,即可进入 Power Query 编辑器窗口。

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

一张 Power Query 编辑器的截图,其中“添加列”和“自定义列”选项被高亮显示

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

  • 新列名称文本框中输入新列的名称;
  • 然后,在自定义列公式框中输入以下公式:if [Status] = "Old " then "50% " else "20% "

一张 Power Query 中“自定义列”对话框的截图,包含一个基本的 IF 公式

4. 然后,单击确定关闭此对话框,即可获得所需结果:

一张 Power Query 编辑器的截图,显示应用自定义公式后的新列

5. 最后,单击开始> 关闭并加载> 关闭并加载,即可将此数据加载到新工作表中。


示例 2:复杂 if 语句

嵌套的 if 语句

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

一张用于 Power Query 中嵌套 IF 示例的数据集截图,包含产品名称和价格

1. 选择数据表,然后单击数据 > 从表格/区域,即可进入 Power Query 编辑器窗口。

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

  • 新列名称文本框中输入新列的名称;
  • 然后,将下方公式输入到公式框中的自定义列
  • = if [Product] = "Dress" then [Price] * 0.5 else
    if [Product] = "Sweater" then [Price] * 0.8 else
    if [Product] = "Hoodie" then [Price] * 0.8
    else [Price]

一张 Power Query 中“自定义列”对话框的截图,包含一个嵌套 IF 公式

3. 然后,单击确定按钮,返回 Power Query 编辑器窗口,即可获得一个包含所需数据的新列,参见截图:

一张 Power Query 编辑器的截图,显示应用了嵌套 IF 逻辑后的新列

4. 最后,单击开始 > 关闭并加载 > 关闭并加载,即可将此数据加载到新工作表中。


使用 OR 逻辑的 if 语句

OR 逻辑可执行多个条件判断,只要其中任一条件为真,即返回真值。其语法如下:

= if logical_test 1 or logical_test 2 or … then value_if_true else value_if_false

假设我有下表,现在我希望新增一列显示:若产品为“连衣裙”或“T 恤”,则品牌为“AAA”;其余产品的品牌为“BBB”。

一张用于 Power Query 中 OR 逻辑示例的数据集截图

1 请选择数据表,然后单击。数据> 从表格/区域,进入 Power Query 编辑器窗口。

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

  • 新列名称文本框中输入新列的名称;
  • 然后,在自定义列公式框中输入下方公式。
  • = if [Product] = "Dress" or [Product] = "T-shirt" then "AAA"
    else "BBB"

一张 Power Query 中“自定义列”对话框的截图,包含一个 OR 逻辑公式

3. 然后,单击确定按钮,返回 Power Query 编辑器窗口,您将获得一个包含所需数据的新列,参见截图:

一张 Power Query 编辑器的截图,显示应用了 OR 逻辑后的新列

4 最后,单击开始> 关闭并加载> 关闭并加载,将此数据加载到新的工作表中。


使用 AND 逻辑的 if 语句

AND 逻辑可在单个 IF 语句中执行多个条件判断:仅当所有条件均为真时,结果才为真;只要任一条件为假,结果即为假。其语法如下:

= if logical_test 1 and logical_test 2 and … then value_if_true else value_if_false

以上述数据为例,我希望新增一列显示:若产品为“连衣裙”且订单数量大于 300,则应用 50% 折扣;否则,保留原价。

1 请选择数据表,然后单击。数据> 从表格/区域,进入 Power Query 编辑器窗口。

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

  • 新列名称文本框中输入新列的名称;
  • 然后,在自定义列公式框中输入下方公式。
  • = if [Product] ="Dress" and [Order] > 300 then [Price]*0.5
    else [Price]

一张 Power Query 中“自定义列”对话框的截图,包含一个 AND 逻辑公式

3. 然后,单击确定按钮,返回 Power Query 编辑器窗口,您将获得一个包含所需数据的新列,参见截图:

一张 Power Query 编辑器的截图,显示应用了 AND 逻辑后的新列

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


使用 OR 和 AND 逻辑的 if 语句

好的,前面的示例都比较简单易懂。现在,我们来提升难度——您可以灵活组合 AND 与 OR 逻辑,构建出任何您能想到的条件。在这类公式中,还能使用括号来明确复杂的规则。

同样以上述数据为例,假设我希望新增一列显示:若产品为“连衣裙”且订单数量大于 300,或产品为“长裤”且订单数量大于 300,则显示“A+”;否则显示“其他”。

1 请选择数据表,然后单击。数据> 从表格/区域,进入 Power Query 编辑器窗口。

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

  • 新列名称文本框中输入新列的名称;
  • 然后,在自定义列公式框中输入下方公式。
  • =if ([Product] = "Dress" and [Order] > 300 ) or
    ([Product] = "Trousers" and [Order] > 300 )
    then "A+"
    else "Other"

一张 Power Query 中“自定义列”对话框的截图,包含组合的 AND 与 OR 逻辑公式

3. 然后,单击确定按钮,返回 Power Query 编辑器窗口,您将获得一个包含所需数据的新列,参见截图:

一张 Power Query 编辑器的截图,显示应用了组合的 AND 与 OR 逻辑后的新列

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

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

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱