[英]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.