Power Query excel

问题描述 投票:0回答:5

我正在尝试在电源查询中使用 if 公式。例如,如果列包含“guy”,则值为“male”,错误值为“female”。我尝试了不同的方法,但找不到在电源查询中使用的正确公式。有人可以帮我吗?

excel excel-formula
5个回答
0
投票

如果您将其输入到

Add Custom Column
对话框中,请输入类似(不区分大小写)的内容:

= if Text.Contains([Column],"guy", Comparer.OrdinalIgnoreCase) then "male" else "female"

0
投票

听起来您想要根据该列中的现有值有条件地替换该列中的值?如果是这样,您可以使用 Power Query 中的 Table.ReplaceValue 函数:

= Table.ReplaceValue(Source,
each [Gender],
each if [Gender] = "guy" then "male" else "female",
Replacer.ReplaceText,{"Gender"})

这会将“guy”的所有值更改为“male”,并将所有其他值更改为“female”,如您所述。

您还可以保留不符合条件的值,只需引用列名称而不是指定新值:

= Table.ReplaceValue(Source,
each [Gender],
each if [Gender] = "guy" then "male" else [Gender],
Replacer.ReplaceText,{"Gender"})

创建一个包含名为 Gender 的列的表,并将其加载到 Power 查询中。右键单击列标题并选择“替换值”以获取为您构建语句的 UI,然后用上述修改替换生成的代码并应用到您的实际要求。关键是使用 each 表达式告诉 Power Query 在行值级别进行测试。如果省略 each,您将看到错误:

“Expression.Error:存在未知标识符。您是否在“each”表达式之外使用了 _[field] 的 [field] 简写?”


0
投票
= Table.AddColumn(#"Changed Type","ColumnName",each if[Column] ="""Guy""" then"""Male""" else"""Female""")

0
投票

我重现了这个场景。我有一个栏目,叫“栏目”,里面有3条“男生”记录,3条女生记录。

试试这个:单击“fx”添加新步骤,然后输入

= Table.AddColumn(#"your previous step name", "your new column name", each if Text.Contains([Column],"guy") then "male" else "female")

注意M语言区分大小写。


0
投票

亚历克斯在这里,很高兴认识你!

首先,确保列的数据类型设置为文本。

现在,请确保包含“guy”的列始终采用一致的格式,因为 Power Query 区分大小写。如果发现差异,请转到“转换”选项卡,按“格式”,然后使用该选项将文本转换为小写或大写第一个字母。

接下来,转到“添加列”选项卡,选择“条件列”,然后选择您的列。对于条件,请使用“等于”并输入“guy”。然后,将值为 true 的值设置为“male”,将其他结果的值设置为“female”。

祝你好运!如果您还有更多问题,请随时提问。

© www.soinside.com 2019 - 2024. All rights reserved.