此问题与Microsoft Excel的Schematiq加载项有关。
使用=tbl.Lookup(table, columnsToSearch, valuesToFind, resultColumn, [defaultValue])
valuesToFind
列中的值左侧一致3个字符,然后变化后的字符(例如908-123456或908-321654 - 即908始终一致)
如何告诉函数只根据前3个字符查找值?预期答案应该是上述结果的总和,即500 + 300 = 800
答案 0 :(得分:0)
tbl.Lookup()
通过寻找完全匹配来工作 - 这有助于确保其快速但在这种情况下,这意味着您需要额外的步骤来计算一列查找值,如下所示:
A2: =tbl.CalculateColumn(A1, "code", "x => LEFT(x, 3)", "startOfCode")
这会为您提供一个可用于columnsToSearch
参数的新列,但tbl.Lookup()
也只查找一个匹配项 - 它不知道如何将值组合在一起表格中有多个匹配的行,所以我认为您还需要再按步骤的前3个字符对表格进行分组,如下所示:
A3: =tbl.Group(A2, "startOfCode", "amount")
由于tbl.Group()
默认情况下会将值添加到一起,因此这将为您提供一个表格,其中每个不同的值startOfCode
都有一行,每个值的小计为amount
。最后,您可以完全按照您的要求进行查找,输入表将返回800:
A4: =tbl.Lookup(A3, "startOfCode", "908", "amount")