我有一个 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 以及其他一些选项,但似乎无法正确过滤数组。
尝试使用以下公式:
=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)))))
如果您只需要前两列,那么:
=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))