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))))
我有一个 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))))