0

我试图在 Excel 中加入单元格后删除唯一值。这是一个电话号码列表,在我用逗号分隔它们后,我将它们组合成一个单元格。我正在使用这个公式:

=SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28),I19&",","")

无论出于何种原因,它都适用于范围内的每个单元格,除了最后一个;这意味着最后一个电话号码仍然显示在最终列表中。例如,如果我有 numbers 12345 23456 34567 and 45678,它应该是这样的:

23456,34567,45678    
12345,34567,45678    
12345,23456,45678    
12345,23456,34567

但结果是这样的

23456,34567,45678    
12345,34567,45678    
12345,23456,45678    
12345,23456,34567,45678

任何想法为什么会发生这种情况?

4

1 回答 1

1

它正在寻找45678,替换为"". 最后没有,。所以我们强制一个,然后在最后删除它:

=LEFT(SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28) & ",",I19&",",""),LEN(SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28) & ",",I19&",",""))-1)

或者把逗号放在前面并使用 MID:

=MID(SUBSTITUTE(","&TEXTJOIN(",",TRUE,$I$19:$I$28),"," &I19,""),2,999)

或者您可以以数组形式使用 TEXTJOIN:

=TEXTJOIN(",",TRUE,IF((ROW($I$19:$I$28)<>ROW(19:19))*($I$19:$I$28<>""),$I$19:$I$28,""))

作为一个数组,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认。如果做得正确,那么 Excel 将{}围绕公式。

然后像第一个一样复制/拖动它。


第二,使用 MID 是更好的选择。

于 2017-08-28T20:09:56.930 回答