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

如何仅对可见单元格应用指定的多列合并公式?

问题描述

原使用公式将多列内容合并为单列:

=SORT(UNIQUE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,A2:J6)&"</s></t>","//s")))

但在A列筛选掉“d”后,结果中仍出现“d”,需要让公式仅作用于可见单元格。

解决方案

原公式的TEXTJOIN会包含筛选隐藏的单元格内容,因此需要先筛选出可见行,再进行合并处理。以下提供两种适用于Google Sheets的方案:

方案1:结合BYROW、SUBTOTAL与FILTERXML

=SORT(UNIQUE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>", TRUE, BYROW(A2:J6, LAMBDA(row, IF(SUBTOTAL(103, OFFSET(INDEX(row,1),0,0,1,1))=1, TEXTJOIN("</s><s>", TRUE, row), "")))&"</s></t>", "//s")))
  • 原理:用BYROW遍历每一行,通过SUBTOTAL(103,...)判断当前行是否可见(103为忽略隐藏单元格的非空计数,返回1则表示行可见),仅将可见行的内容加入合并字符串,再通过FILTERXML拆分、去重排序。

方案2:用TOCOL简化操作(更简洁)

=SORT(UNIQUE(TOCOL(FILTER(A2:J6, BYROW(A2:J6, LAMBDA(r, SUBTOTAL(103, INDEX(r,1))=1)), 1))))
  • 原理:BYROW+SUBTOTAL筛选出所有可见行,FILTER保留这些行的内容,TOCOL将多列数据转换为单列,最后完成去重与排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:58:23