我有一张一组球员的比赛位置表和一张每个位置的锦标赛奖金表,我想把所有的奖金加起来,而不必再创建任何额外的表格或一个庞大的公式。
这就是我想象中可能奏效的东西:
=SUM(ARRAYFORMULA(INDEX(Tournaments!$1:$1000,MATCH($H$1:$Q$1,Tournaments!$A:$A,0),MATCH($H4:$Q4,Tournaments!$1:$1,1))))基本上,期望数组公式将索引转化为许多不同的匹配,从而能够对它们进行求和,但它只是带来了第一次命中。要注意的一点是:位置不一定准确,如果一个球员排在3-4,表有3.5,这就是为什么上面的匹配公式有1(a-1做同样的事情),而不是搜索类型上的0。
这是文件的链接,如果你想玩它的话。列G:https://docs.google.com/spreadsheets/d/1Ft_E5bRzlqbAvo3yD54VC2hBWS6eaYrLQg5Q9sP859g/edit?usp=sharing上的公式
发布于 2020-09-09 00:45:45
我终于拿到了。(谢谢你提供这张纸!)
遗憾的是,您不能使用INDEX()和ArrayFormula(),但是您可以使用VLOOKUP()来使其工作。我还决定将Tournaments作为可读性的命名范围。
平面形式:
=SUM(ArrayFormula(IFERROR(VLOOKUP(H$1:Q$1,Tournaments,IF(H4:Q4,H4:Q4+3),0))))标记:
=SUM(
ArrayFormula(
IFERROR( # If we don't find a value, we get an error,
# meaning a valid placement was not given.
# No 2nd arg -> blank -> `0` for `SUM()`.
VLOOKUP(
H$1:Q$1, # Lookup value (Tournament names)
Tournaments, # Lookup range (Named range)
IF( # Lookup index (Placement)
# No need to worry about floating points.
# This value is floored by VLOOKUP().
H4:Q4, # If non-blank...
H4:Q4+3 # Add 3 to index into proper column
),
0 # Exact match on tourney name, since
# they're unsorted
)
)
)
)澄清以帮助:
VLOOKUP()首先垂直查找查找值(比赛名称),检索行。然后,它使用索引(放置)对该行进行索引。这就是我们需要整个表并包含所有列的原因。这就是为什么+3是there.的原因
Data > Named Ranges下创建。F 224
https://stackoverflow.com/questions/63768493
复制相似问题