【问题标题】:How do I eliminate duplicates when using TEXTJOIN in Excel?在 Excel 中使用 TEXTJOIN 时如何消除重复项?
【发布时间】:2019-08-15 00:59:57
【问题描述】:

我目前正在使用 TEXTJOIN 获取匹配名称的所有面试日期。这工作正常,除了有重复。

这是一个有很多面试日期的名字的典型输出:

03/06/19, 03/06/19, 03/06/19, 03/06/19, 03/06/19, 03/06/19, 04/06/19, 04/06/19,
04/06/19、04/06/19、04/06/19、04/06/19、04/06/19、04/06/19、05/06/19、05/06/19、05/06/19, 05/06/19, 05/06/19, 05/06/19, 06/06/19, 06/06/19, 06/06/19, 06/06/19,
06/06/19, 06/06/19, 06/06/19, 07/06/19, 07/06/19, 07/06/19, 07/06/19, 07/06/19 ,
07/06/19, 14/06/19, 16/06/19, 20/06/19

我需要删除重复项并仅显示唯一值。我宁愿不从源数据中删除它们,而是修改 TEXTJOIN 公式。

C22 包含姓名,TableOfInterviewDates[DateOfInterview] 包含所有采访日期。 我目前正在使用这个:

{=TEXTJOIN(", ",TRUE,IF(TableOfInterviewDates[Name]=C22,TEXT(TableOfInterviewDates[DateOfInterview], "DD/MM/YY"),""))}

我已经用谷歌搜索了这个问题,并尝试修改以下 TEXTJOIN 并删除重复项:

{=TEXTJOIN(" & ",TRUE,IF(MATCH(A1:A6,A1:A6,0)=ROW(A1:A6)-ROW(A1)+1,A1:A6,"")) }

最后得到了这个:

{=TEXTJOIN(", ",TRUE,IF(TableOfInterviewDates[Name]=C22,TEXT(IF(MATCH(TableOfInterviewDates[DateOfInterview],TableOfInterviewDates[DateOfInterview],0)=(ROW(TableOfInterviewDates[DateOfInterview]))- ROW(TableOfInterviewDates[[#Headers],[DateOfInterview]])),TableOfInterviewDates[DateOfInterview]),"DD/MM/YY"),""),"")}

与上面的简单TEXTJOIN输出相比,现在变得很困惑并得到奇怪的输出:

假,假,假,假,假,假,假,假,假,假,假,假,
假,假,假,假,假,假,假,假,假,假,假,假,
假,假,假,假,假,假,假,假,假,假,假,
假,16/06/19,假

目前正在使用但有重复:

{=TEXTJOIN(", ",TRUE,IF(TableOfInterviewDates[Name]=C2,TEXT(TableOfInterviewDates[DateOfInterview], "DD/MM/YY"),""))}

这似乎是前进的方向,但我做的不对:

{=TEXTJOIN(", ",TRUE,IF(TableOfInterviewDates[Name]=C22,TEXT(IF(MATCH(TableOfInterviewDates[DateOfInterview],TableOfInterviewDates[DateOfInterview],0)=(ROW(TableOfInterviewDates[DateOfInterview]))- ROW(TableOfInterviewDates[[#Headers],[DateOfInterview]])),TableOfInterviewDates[DateOfInterview]),"DD/MM/YY"),""),"")}

【问题讨论】:

  • TEXT...移动到第二个IF之后
  • 嗨 AAA,我试过这个:=TEXTJOIN(", ",TRUE,IF(TableOfInterviewDates[Name]=C2,IF(TEXT(MATCH(TableOfInterviewDates[DateOfInterview],TableOfInterviewDates[DateOfInterview], 0)=(ROW(TableOfInterviewDates[DateOfInterview])-ROW(TableOfInterviewDates[[#Headers],[DateOfInterview]])),TableOfInterviewDates[DateOfInterview]),"DD/MM/YY"),""),"")但是输出最终是这样的:FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,假,日/月/年,假

标签: excel vba formula


【解决方案1】:

尝试如下修改您的公式...

=TEXTJOIN(", ",TRUE,IF(TableOfInterviewDates[Name]=C22,IF(MATCH(TableOfInterviewDates[DateOfInterview],TableOfInterviewDates[DateOfInterview],0)=(ROW(TableOfInterviewDates[DateOfInterview])-MIN(ROW(TableOfInterviewDates[DateOfInterview]))+1),TEXT(TableOfInterviewDates[DateOfInterview],"DD/MM/YY"),""),""))

...用 CONTROL+SHIFT+ENTER 确认。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多