有一表格:
A | B |
---|---|
Y | 12 |
N | 32 |
题目:如果A列第n行=“Y”,替换该行B列的值为100。
方法1:
= Table.ReplaceValue(更改的类型, each [B], each if [A]="Y" then 100 else [B], Replacer.ReplaceValue,{"B"})
方法2:
= Table.ReplaceValue(更改的类型, each [A]="Y", 100, (X,Y,Z)=>if Y then Z else X, {"B"})
方法中的第4个参数为 函数名
,默认为Replacer.ReplaceValue
。方法2中改为了自定义函数,但使用的参数是一样的,都来自方法中的其它参数。
形参 | 实参 |
---|---|
X | Table.ReplaceValue()函数中的第5个参数,{“B”},即B列中的每个值,被查找的值 |
Y | each [A]=“Y”,即True或者False |
Z | Table.ReplaceValue()函数中的第3个参数,100 |
-
默认的函数名,Replacer.ReplaceValue,执行逻辑是:判断每个X(即列中每个要被查找的值)是否等于Y的值,是就返回Z的值,否则返回X的值。
-
自定义匿名函数,(X,Y,Z)=>if Y then Z else X,执行逻辑是:if判断Y的值,是True就返回Z的值,是False返回X的值。