如何在Google Sheets中用单个Formula合并排序同匹配值的日期条目
在Google Sheets单个单元格中实现同匹配值的日期条目合并并排序的公式方案
核心公式(基础版)
假设你的数据结构为:
- A列:日期
- B列:匹配值(如Color)
- C列:描述内容
在D2单元格输入以下公式,下拉即可应用到所有行:
=TEXTJOIN("; ", TRUE, QUERY($A$2:$C, "SELECT CONCAT(A, ' - ', C) WHERE B = '"&B2&"' ORDER BY A ASC LABEL CONCAT(A, ' - ', C) ''", 0))
公式解析
- QUERY函数:
- 从
$A$2:$C数据范围中,筛选出与当前行B列值相同的条目 - 通过
ORDER BY A ASC确保结果按日期升序排列 - 使用
CONCAT(A, ' - ', C)将日期和描述合并为统一格式,LABEL ... ''用于移除QUERY默认生成的表头
- 从
- TEXTJOIN函数:
- 用
;作为分隔符,将QUERY返回的所有合并内容连接成字符串 TRUE参数表示忽略空值,避免出现多余分隔符
- 用
处理特殊字符的进阶版
如果B列的匹配值包含单引号(如O'Neil),需要用SUBSTITUTE转义单引号,否则QUERY会报错:
=TEXTJOIN("; ", TRUE, QUERY($A$2:$C, "SELECT CONCAT(A, ' - ', C) WHERE B = '"&SUBSTITUTE(B2, "'", "''")&"' ORDER BY A ASC LABEL CONCAT(A, ' - ', C) ''", 0))
效果验证
- 当存在多个同匹配值的条目时,公式会自动合并所有对应内容,并严格按日期从早到晚排序
- 当无匹配条目(仅当前行一条数据)时,直接返回当前行的日期+描述组合
内容的提问来源于stack exchange,提问作者MMsmithH
相关产品推荐
相关产品推荐

