Power Query: If 语句 - 嵌套 if 和多个条件
在 Excel 中 Power QueryIF 语句是最流行的函数之一,用于检查条件并根据结果是 TRUE 还是 FALSE 返回特定值。 这个if语句和Excel的IF函数有一些区别。 在本教程中,我将为您介绍这个 if 语句的语法以及一些简单和复杂的示例。
基本 if 语句语法 Power Query
In Power Query,语法为:
- 逻辑测试:您要测试的条件。
- 值_if_true:结果为真时返回的值。
- 值_if_false:如果结果为 FALSE,则返回值。
在 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 语句。 例如,我有下面的数据表。 如果产品是“连衣裙”,则给予原价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 逻辑执行多个逻辑测试,如果任何逻辑测试为真,则返回真实结果。 语法是:
假设,我有下表,现在,我想要一个新的列显示为:如果产品是“Dress”或“T-shirt”,那么品牌是“AAA”,其他产品的品牌是“BBB”。
1. 选择数据表,然后单击 时间 > 从表/范围 去 Power Query 编者 窗口。
2. 在打开的窗口中,单击 添加列 > 自定义列,在打开 自定义列 对话框,请执行以下操作:
- 将新列的名称输入到 新列名称 文本框;
- 然后,将下面的公式输入到 自定义列公式 框。
- = 如果 [Product] = "Dress" 或 [Product] = "T-shirt" 那么 "AAA"
否则“BBB”
3。 然后,单击 OK 按钮返回 Power Query 编者 窗口,您将获得一个包含所需数据的新列,请参见屏幕截图:
4。 最后点击 主页 > 关闭并加载 > 关闭并加载 将此数据加载到新工作表。
AND 逻辑在单个 if 语句中执行多个逻辑测试。 所有测试都必须为真才能返回真实结果。 如果任何测试为假,则返回假结果。 语法是:
以上面的数据为例,我想要一个新的列显示为:如果产品是“Dress”并且订单大于300,则给予原价50%的折扣; 否则保持原价。
1. 选择数据表,然后单击 时间 > 从表/范围 去 Power Query 编者 窗口。
2. 在打开的窗口中,单击 添加列 > 自定义列。 在开 自定义列 对话框,请执行以下操作:
- 将新列的名称输入到 新列名称 文本框;
- 然后,将下面的公式输入到 自定义列公式 框。
- = 如果 [Product] = "Dress" 并且 [Order] > 300 那么 [Price]*0.5
其他 [价格]
3。 然后,点击 OK 按钮返回 Power Query 编者 窗口,您将获得一个包含所需数据的新列,请参见屏幕截图:
4. 最后,您应该通过单击将此数据加载到新工作表中 主页 > 关闭并加载 > 关闭并加载.
好了,前面的例子我们就很容易理解了。 现在,让我们让它变得更难。 您可以组合 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%,并减少数百次鼠标单击!