如何在Google Sheets中基于已筛选行创建唯一值列表
解决Google Sheets筛选后提取可见行唯一值的问题
嘿,这个坑我之前踩过!默认的UNIQUE函数不管行有没有被筛选隐藏,都会把所有数据算进去,这就是为啥你已经筛掉B和C了,它们还出现在唯一值列表里。要搞定这个,核心是先只抓取可见行的数据,再提取唯一值。
给你个直接能用的公式,假设你的已筛选数据在A列(比如从A2到A8):
=UNIQUE(FILTER(A2:A8, SUBTOTAL(103, OFFSET(A2:A8, ROW(A2:A8)-ROW(A2), 0, 1))))
拆解一下这个公式的逻辑:
SUBTOTAL(103, ...):这里的103代表COUNTA函数,但它只作用于可见行。OFFSET的作用是逐个定位到每一行,让SUBTOTAL检查这一行是否可见(可见行返回1,隐藏行返回0)。FILTER:根据SUBTOTAL的结果,只保留可见行里的数据。UNIQUE:对筛选后的可见数据提取唯一值,这样就不会包含被筛掉的B和C啦!
用你提供的例子测试的话,这个公式会精准返回A和D,完全符合你期望的结果。
内容的提问来源于stack exchange,提问作者YoungIn Bracy




