使用Excel O365,如何在两列上使用唯一,排序和复制相关数据?

问题描述 投票:0回答:1

我有一个 4 列动态行数组,其中包含名称、流程、订单号和日期。该数组是动态的,使用 FILTER 函数进行收集,并从另一张纸上的表格中获取我想要的 4 列。

=FILTER(WelderQualifications[[Employee Name]:[Date Performed]],{1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1})

我需要一个非 VBA 解决方案来仅使用前两列查找唯一值(即收集 Person 1 GTAW 和 Person 1 MGTAW,但较旧的 Person 1 GTAW 日期将被忽略。

在选择唯一数据时还需要它抓取最新的记录,也许是初步排序?

最后,我想显示所有 4 列过滤数据,但我不希望订单号或日期成为 UNIQUE 过滤器的一部分。看图片。

样本数据和所需的过滤结果

我可以让唯一的两列工作,但我不确定如何收集我需要的相关数据。

这可以正确地对人名和流程进行排序,但显然会删除其他两列:

UNIQUE(SORT(FILTER(WelderQualifications[[Employee Name]:[Date Performed]],{1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}),1,1),FALSE,FALSE)

已过滤名称和进程

我尝试过 LET 函数和一些 SEQUENCE、LAMBDA 以及其他一些选项,但似乎无法正确过滤数组。

excel multidimensional-array excel-formula office365 unique
1个回答
0
投票

尝试使用以下公式:

enter image description here


=LET(
     _Data, A1#,
     _Headers, TAKE(_Data,1),
     _Body, DROP(_Data,1),
     _Sort, SORT(_Body,{1,2,4},{1,1,-1}),
     _Uniq, UNIQUE(TAKE(_Sort,,2)),
     VSTACK(_Headers,CHOOSEROWS(_Sort,
     XMATCH(INDEX(_Uniq,,1)&"|"&INDEX(_Uniq,,2),
     INDEX(_Sort,,1)&"|"&INDEX(_Sort,,2)))))

如果您只需要前两列,那么:

enter image description here


=LET(
     _Data, A1#,
     _Headers, TAKE(_Data,1),
     _Body, DROP(_Data,1),
     _Sort, SORT(_Body,{1,2,4},{1,1,-1}),
     _Uniq, UNIQUE(TAKE(_Sort,,2)),
     VSTACK(TAKE(_Headers,,2),_Uniq))

© www.soinside.com 2019 - 2024. All rights reserved.