You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中如何将FILTER结果的两列合并为带连字符的单列?

Google Sheets 筛选后合并两列为带连字符的单列方案

原始表格

A    B   C
   -    -   -
1  A    I   1
2  B    J   0
3  C    K   0
4  D    L   1
5  E    M   1
6  F    N   0
7  G    O   0
8  H    P   1

已完成的筛选

使用公式 =FILTER(A1:B8, C1:C8=1) 得到筛选结果:

E   F
-   -
A   I
D   L
E   M
H   P

需求

将上述筛选结果的E、F两列合并为单列,每行格式为「内容 - 内容」,期望输出:

E 
-----   
A - I
D - L
E - M
H - P

尝试过的无效公式

  • 公式 =TEXTJOIN(" - ", TRUE, FILTER(A1:B8, C1:C8=1)),结果为 A - I - D - L - E - M - H - P,所有内容连成一行,不符合需求;
  • 公式 =TRANSPOSE(QUERY(TRANSPOSE(FILTER(A1:B8, C1:C8=1)),, 9^9)),得到单列但无连字符:
J
-----
A I
D L
E M
H P

可行公式方案

方案1:BYROW + LAMBDA(推荐)

=BYROW(FILTER(A1:B8, C1:C8=1), LAMBDA(row, TEXTJOIN(" - ", TRUE, row)))

原理:BYROW遍历FILTER返回的每一行数据,LAMBDA定义行处理逻辑——用TEXTJOIN将该行两个单元格内容用「 - 」连接,最终输出符合格式的单列结果。

方案2:ARRAYFORMULA + 索引拼接

=ARRAYFORMULA(INDEX(FILTER(A1:B8, C1:C8=1),,1)&" - "&INDEX(FILTER(A1:B8, C1:C8=1),,2))

原理:用INDEX分别提取FILTER结果的第一列和第二列,通过&运算符将两列内容与「 - 」拼接,ARRAYFORMULA实现批量处理所有行。

内容的提问来源于stack exchange,提问作者Leonardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:38:35