替代textjoin公式不适用于最终单元格
我想在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
任何想法,为什么这可能会发生?
它正在寻找45678,
replace为""
。 没有,
最后。 所以我们强制一个,然后在最后删除它:
=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)
或者你可以用数组forms使用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是更好的select。