首页 > 解决方案 > ArrayFormula - 如果单元格包含匹配项,则将其他单元格与 TEXTJOIN 组合

问题描述

我有一个包含字符名称的 Google 表格,以及组名、“选定”和攻击力的相应值。它看起来像这样:

表 1

| 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 |

表 2

在我的第二张纸中,我有两列。组名,其中包含来自 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 语句尝试了以下设置,但它只返回一个 FALSE 字符串:

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

这可以是一个吗?

标签: filtergoogle-sheetsgoogle-sheets-formulaarray-formulastextjoin

解决方案


粘贴在F2单元格中:

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

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

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

0


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))))

在此处输入图像描述


推荐阅读