我正在尝试在Excel中加入单元格后删除唯一值。这是我用逗号分隔后组合成单个单元格的电话号码列表。我正在使用这个公式:
=SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28),I19&",","")
无论出于何种原因,它适用于范围内的每个单元格,除了最后一个单元格;意味着最后一个电话号码仍显示在最终列表中。例如,如果我有数字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
为什么会发生这种情况的任何想法?
答案 0 :(得分: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是更好的选择。