使用 XLOOKUP、IF 和 TEXTJOIN 时删除重复项

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

我正在尝试从名为“资产”的不同工作表中编制与特定资产相关的人员列表。使用此公式,如果资产在不到 6 个月前被修改,我想返回一个名称;如果资产是在不到 6 个月前创建,则返回一个名称,然后是资产的所有者。由于这些可能是同一个人,我希望减少返回的多个名称。

=TEXTJOIN("; ", TRUE, IF(XLOOKUP(E15, Asset_Path, Asset_ModifiedDate)>TODAY()-184, XLOOKUP(E15, Asset_Path, Asset_ModifiedBy), "Mod > 6 months"), IF(XLOOKUP(E15, Asset_Path, Asset_CreatedDate)>TODAY()-184, XLOOKUP(E15, Asset_Path, Asset_CreatedBy), "Created > 6 months"), XLOOKUP(E15, Asset_Path, Asset_Owner))

Asset Worksheet Equation Result

我尝试删除 TEXTJOIN 并在每个 IF 语句之间添加

&"; "&
,使用 CONCAT,并在 TEXTJOIN 之前添加 UNIQUE,但重复的名称不断出现。

excel excel-formula duplicates office365
1个回答
0
投票

试试这个:

=TEXTJOIN("; ", TRUE, UNIQUE(FILTER({IF(XLOOKUP(E15, Asset_Path, Asset_ModifiedDate)>TODAY()-184, XLOOKUP(E15, Asset_Path, Asset_ModifiedBy), ""), IF(XLOOKUP(E15, Asset_Path, Asset_CreatedDate)>TODAY()-184, XLOOKUP(E15, Asset_Path, Asset_CreatedBy), ""), XLOOKUP(E15, Asset_Path, Asset_Owner)}, LEN({IF(XLOOKUP(E15, Asset_Path, Asset_ModifiedDate)>TODAY()-184, XLOOKUP(E15, Asset_Path, Asset_ModifiedBy), ""), IF(XLOOKUP(E15, Asset_Path, Asset_CreatedDate)>TODAY()-184, XLOOKUP(E15, Asset_Path, Asset_CreatedBy), ""), XLOOKUP(E15, Asset_Path, Asset_Owner)})>0)))

我制作了自己的数据表来测试这一点并添加回您的参考名称。如果这不起作用(无论这不是您要查找的内容,还是我在添加回数组引用名称时出错),请评论可以使用的示例数据集(不是图片),我会更新。

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