=SORT(UNIQUE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,A2:J6)&"</s></t>","//s")))
以上公式用于将多列合并为一列。
我只需要对可见单元格应用上述公式。 “d”在“A”列中被过滤,但仍然存在于结果中。
请帮助我。
谢谢你。
我找到了一种解决方法,如果数据集不太大,可能会对您有所帮助:
此解决方案需要辅助列。
如果我们将
=ROW()^10
放入 K2
并将其向下拖动到范围的末尾(或立即使用 =ROW(A2:J6)^10
),那么我们创建了一个值的辅助列,如果我们对组合求和,它们将始终求和为唯一值价值观。我们将在我们的解决方案中使用它。
当我们手动过滤掉任何行时,辅助列的行也会被过滤掉。函数
SUBTOTAL
具有仅处理未过滤数据的内置函数。在本例中,我们使用 SUM,其参数是 109
。我们可以在我们的解决方案中利用它:
=LET(range, A2:J6,
helper, K2:K6,
r, ROWS(range),
visible, REDUCE("",BASE(SEQUENCE(SUM(COMBIN(r,SEQUENCE(r)))),2,r),
LAMBDA(x,y,
IF( SUM(FILTER(helper,--MID(y,SEQUENCE(r),1)))=SUBTOTAL(109,helper),
FILTER(range,--MID(y,SEQUENCE(r),1)),x))),
SORT(UNIQUE(TOCOL(visible,1))))
应用手动过滤器后 基本上,该公式检查辅助列所有可能组合的总和是否等于辅助列的过滤小计,而不是对这些行的组合应用过滤器。
我知道 REDUCE 或 LAMBDA 在 Office 2021 中不起作用,因此我在此公式中将 FILTERXML 更改为 TOCOL。
虽然它在 Office 2021 中不起作用,但我认为您确实可以访问 excel 网页版,并且所有这些都可以在那里使用。我希望对您的情况有所帮助。