【发布时间】:2018-09-05 10:32:32
【问题描述】:
我正在使用 Excel 跟踪团队游戏,其中玩家分为团队和团队内的子团队。一个小队中的每个球员都得分一定数量,我想为每个球员提供一个摘要字符串,其中包含同一小队中其他球员的得分。
例子:
A B C D
PLAYER TEAM SUBTEAM POINTS
Alice Red 1 70
Bob Red 1 20
Charlie Red 1 10
Dave Red 2 70
Erin Red 2 30
Frank Blue 1 55
Grace Blue 1 45
我想要的输出如下所示:
A B C D E
PLAYER TEAM SUBTEAM POINTS SUMMARY
Alice Red 1 70 Bob:20, Charlie:10
Bob Red 1 20 Alice:70, Charlie:10
Charlie Red 1 10 Alice:70, Bob:20
Dave Red 2 70 Erin:30
Erin Red 2 30 Dave:70
Frank Blue 1 55 Grace:45
Grace Blue 1 45 Frank:55
我能做的最远的事情是数组公式中的 CONCATENATE、INDEX 和 MATCH 的组合:
{=CONCATENATE(INDEX($A$2:$A$8,MATCH(1,(C2=$C$2:$C$8)*(B2=$B$2:$B$8),0)), ":", INDEX($D$2:$D$8,MATCH(1,(C2=$C$2:$C$8)*(B2=$B$2:$B$8),0)))}
不幸的是,这只是为小队中的第一个玩家输出了一个摘要:
A B C D E
PLAYER TEAM SUBTEAM POINTS SUMMARY
Alice Red 1 70 Alice:70
Bob Red 1 20 Alice:70
Charlie Red 1 10 Alice:70
Dave Red 2 70 Dave:70
Erin Red 2 30 Dave:70
Frank Blue 1 55 Grace:45
Grace Blue 1 45 Grace:45
我现在需要做的是:
- 在摘要中排除玩家(我不希望 Alice 在 Alice 的摘要中,而只有 Bob 和 Charlie)
- 让它适用于多场比赛(每个小队可以有任意数量的球员)
- 让 CONCATENATE 使用未知数量的字符串(因为如上所述,每个子团队中可以有任意数量的玩家)。
想法赞赏!
【问题讨论】:
-
CONCATENATE 不会返回数组。您将需要 Excel 2016 函数 CONCAT 或 TEXTJOIN,但我相信这些也需要 Office 365 订阅。否则,您将需要 VBA。
标签: excel excel-formula