提问人:toaruScar 提问时间:6/24/2023 最后编辑:toaruScar 更新时间:6/25/2023 访问量:136
为什么定义名称前面的加号会影响封闭函数的结果?
Why does a plus sign in front of a defined name affects the results of enclosing function?
问:
首先,我来举个例子:
我每天都有一张球员的原始分数表,叫做“原始分数”。
我还有这个修改器表,我将应用于每个玩家的每日原始分数,它被称为“ScoreMod”。
我还有这张表来计算他们的总有效分数。它被称为“总计”。
为了计算每个玩家的每日有效分数(原始分数+修饰符),我使用以下函数。
=LET(
MyDate, FILTER(RawScore[Date],RawScore[Name]=Total[@Name]),
MyRawScore,FILTER(RawScore[Score],RawScore[Name]=Total[@Name]),
MyModifier,XLOOKUP(
MyDate,
FILTER(ScoreMod[Date], ScoreMod[Name]=Total[@Name],0),
FILTER(ScoreMod[Modifier], ScoreMod[Name]=Total[@Name],0), 0),
MyModifier + MyRawScore)
如图所示,此功能工作正常。汤姆的有效分数计算正确。
然后,我将上述函数定义为 。EffectiveScore
但是,当我尝试在总分表中使用 Tom 的总分时,结果是不正确的,因为它变成了 300。=SUM(EffectiveScore)
但是如果我使用汤姆的总分,那么结果是正确的总分,280。=SUM(+EffectiveScore)
我的问题是,为什么没有 的公式不能让我得到正确答案,为什么添加一个可以得到正确的答案?+
+
答: 暂无答案
评论
XLOOKUP
=SUM(XLOOKUP({"a","b"},{"a";"b";"c"},{1;2;3}))
=XLOOKUP({"a","b"},{"a";"b";"c"},{1;2;3})
=SUM(XLook)
=SUM(XLOOKUP("a",{"a";"b";"c"},{1;2;3}))
=SUM(FILTER({1;2;3},{1;1;0}))
=SUM(MyFilter)
=FILTER({1;2;3},{1;1;0})
XMATCH
Xlook
TOCOL
TOROW
=BYROW(Xlook, LAMBDA(x, SUM(x)))