[英]Concatenating INDEX/MATCH with multiple criteria and multiple matches
我正在使用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
我现在需要做的是:
想法表示赞赏!
我整理了一个帮助列,其中将每个玩家/积分和TEXTJOIN的TEXTJOINIFS(用于xl2010 / xl2013)与期望结果的条件连接在一起 。
不幸的是,Excel(Excel 2016之前的版本)无法方便地联接文本。 最好的办法(如果要避免使用VBA)是使用一些辅助单元并将此“摘要”拆分为单独的单元。
请参见下面的示例。 单元格E4
的数组公式被拖动到单元格J10
。
= IFERROR(INDEX($A$4:$D$10,MATCH(SMALL(IF(($B$4:$B$10=$B4)*($C$4:$C$10=$C4)*($A$4:$A$10<>$A4),
ROW($A$4:$A$10)),E$3),ROW($A$4:$A$10),0),MATCH(E$2,$A$1:$D$1,0)),"")
请注意,这是一个数组公式,因此在键入此公式后,必须按Ctrl + Shift + Enter,而不仅仅是Enter 。
当然,在此示例中,我假设有3位玩家。 单靠公式不能满足您对任意数量玩家的要求,但是您可以根据需要将“摘要”部分扩展到右侧。
如果确实需要,甚至可以将“摘要”行连接起来以形成单个单元格,例如:
= CONCATENATE(E4,": ",F4,", ",...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.