ArrayFormula - 如果单元格包含匹配项,则将其他单元格与 TEXTJOIN 合并

ArrayFormula - If cell contains match, combine other cells with TEXTJOIN

我有一个 Google Sheet,其中包含角色名称,以及组名称、"selected" 和攻击强度的相应值。它看起来像这样:

Sheet1

| NAME     | GROUP NAME | SELECTED  | ATTACK POWER |
|:---------|:-----------|----------:|-------------:|
| guile    | Team Red   |         1 |          333 | 
|----------|------------|-----------|--------------|
| blanka   | Team Red   |         1 |           50 |
|----------|------------|-----------|--------------|
| sagat    | Team Red   |           |          500 |
|----------|------------|-----------|--------------|
| ruy      | Team Blue  |         1 |          450 |
|----------|------------|-----------|--------------|
| vega     | Team Blue  |         2 |          150 |

Sheet2

在我的第二个 sheet 中,我有两列。组名,其中包含来自 Sheet1 的每个团队的名称和名称,其中包含我当前的 ArrayFormula:

=ARRAYFORMULA(TEXTJOIN(CHAR(10); 1; 
 REPT('Sheet1'!A:A; 1*('Sheet1'!B:B=A2))))

使用这个公式,我可以根据组名中的值将所有字符合并到一个单元格中(使用 textjoin,重复换行符)。结果如下所示:

| GROUP NAME | NAME                      |
|:-----------|:--------------------------|
| Team Red   | guile                     |         
|            | blanka                    |
|            | sagat                     |
|------------|---------------------------|
| Team Blue  | ruy                       |
|            | vega                      |
|------------|---------------------------|

问题是我只想组合具有选定值 1 的字符。最终结果应该是这样的:

| GROUP NAME | NAME                      |
|:-----------|:--------------------------|
| Team Red   | guile                     |         
|            | blanka                    |
|------------|---------------------------|
| Team Blue  | ruy                       |
|------------|---------------------------|

我使用 IF 语句尝试了以下设置,但它只是 returns 一串 FALSE:

=ARRAYFORMULA(TEXTJOIN(CHAR(10); 1; 
 REPT(IF('Sheet1'!C:C="1";'Sheet1'!A:A); 1*('Sheet1'!B:B=A2))))

这个可以吗?

粘贴到 F2 单元格:

=UNIQUE(FILTER(B:B, C:C=1))

粘贴到 G2 单元格并向下拖动:

=TEXTJOIN(CHAR(10), 1, FILTER(A:A, B:B=F2, C:C=1))


G2 单元格如下:

=ARRAYFORMULA(TEXTJOIN(CHAR(10), 1, 
 REPT(FILTER(Sheet1!A:A, Sheet1!C:C=1), 1*(FILTER(Sheet1!B:B, Sheet1!C:C=1)=F2))))