如何对不同工作表的非相邻列使用UNIQUE函数获取合并去重列表
两个结构化表列合并去重非VBA解决方案
问题根因
Excel 工作表函数不存在UNION方法,该方法仅适用于VBA对象模型,因此你之前的公式直接报错。
365/2021及以上版本最优方案
直接在第三个工作表的目标起始单元格输入以下公式即可自动溢出输出所有合并去重的Name值:
=UNIQUE(VSTACK(tblFruits1[Name], tblFruits2[Name]))
公式逻辑说明
VSTACK函数会自动将两个结构化表的Name列垂直拼接为完整的单列数组,不受两个表行数差异的影响- 外层嵌套
UNIQUE直接对拼接后的数组做去重处理,输出结果完全符合你预期的6个不重复值要求
低版本Excel兼容方案(无动态数组功能)
如果使用的是2019及更低版本的Excel,可通过数组公式+下拉的方式实现:
- 假设结果输出从A1单元格开始,A1输入以下公式,按
Ctrl+Shift+Enter三键结束数组录入
=IFERROR(INDEX(tblFruits1[Name],SMALL(IF(COUNTIF(A$1:A1,tblFruits1[Name])=0,ROW(tblFruits1[Name])-ROW(tblFruits1[#Headers]),999),1)),IFERROR(INDEX(tblFruits2[Name],SMALL(IF(COUNTIF(A$1:A1,tblFruits2[Name])=0,ROW(tblFruits2[Name])-ROW(tblFruits2[#Headers]),999),1)),""))
- 按住A1单元格右下角的填充柄向下拖动,直到单元格返回空白即为所有唯一值提取完成
内容的提问来源于stack exchange,提问作者Ike
相关产品推荐
相关产品推荐

